SQL 2008 FILESTREAM مع NHibernate
-
22-08-2019 - |
سؤال
وأنا محاولة لاستخدام FILESTREAM في خادم SQL 2008 إلى الصور التي تم تحميلها مخزن المستخدم.
ومشكلتي هي التي من شأنها أن NHibernate ليس خطأ، ولكن أيضا لن حفظ البيانات إلى قاعدة البيانات. يتم إنشاء أي سجل.
والطبقة صورة أدناه فئة مخصصة (وينبغي عدم الخلط بينه وبين System.Drawing.Image)
public class ImageMap : ClassMap<Image>
{
public ImageMap()
{
WithTable("Images");
Id(x => x.ImageId).GeneratedBy.GuidComb().WithUnsavedValue(Guid.Empty);
Map(x => x.ImageData);
Map(x => x.Extension);
References(x => x.Owner, "UserId");
}
}
ولي طريقة لحفظ يشبه هذا:
public void Save(Image image)
{
ISession session = GetSession();
session.SaveOrUpdate(image);
}
وربما أنا إنقاذ خاطئ، وربما رسم الخرائط بلدي هو خارج. ImageData هو حقل ثنائي متغير (حد أقصى) في قاعدة البيانات.
المحلول
والجواب على هذا كانت بسيطة. أنا حذف بلدي تجاوز إلى طريقة حفظ وانها ثابتة نفسها. كان لدينا بالفعل baseclass طريقة حفظ تعريف وبلدي تجاوز خاطئة تماما.
public void Save(T entity)
{
using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
session.SaveOrUpdate(entity);
tx.Commit();
}
}
لا تنتمي إلى StackOverflow