Cybersilent
سه شنبه 01 بهمن 1392, 11:13 صبح
دو کلاس موجودیت دارم به شکل زیر:
public class Foo
{
public Guid Id { get; set; }
public string Subject { get; set; }
public TenderType Type { get; set; }
}
و
public class TenderType
{
public Guid Id { get; set; }
public string Name { get; set; }
}
هنگام ویرایش اطلاعات کلاس Foo، وقتی که مقدار کلاس TenderType اون رو تغییر می دهم، و SaveChange می کنم، هیچ خطایی نمی ده اما نوع کلاس TenderType همچنان در بانک اطلاعاتی بدون تغییر مانده است، در حالی که بقیه خصوصیت ها مثل Subject تغییر کرده اند.
و نکته جالب اینکه اگر بلافاصله بعد از SaveChange دوباره اطلاعات کلاس Foo رو با Id خودش از بانک اطلاعاتی واکشی کنم، میبینم که EF رکوردی رو به من می ده که در اون اطلاعات کلاس TenderType به مقدار جدید تغییر کرده اند اما در سمت DataBase ، هنوز مقدار قبلی هست.
دوستان نظری دارند که علت این رفتار EF چیست و چرا؟
public class Foo
{
public Guid Id { get; set; }
public string Subject { get; set; }
public TenderType Type { get; set; }
}
و
public class TenderType
{
public Guid Id { get; set; }
public string Name { get; set; }
}
هنگام ویرایش اطلاعات کلاس Foo، وقتی که مقدار کلاس TenderType اون رو تغییر می دهم، و SaveChange می کنم، هیچ خطایی نمی ده اما نوع کلاس TenderType همچنان در بانک اطلاعاتی بدون تغییر مانده است، در حالی که بقیه خصوصیت ها مثل Subject تغییر کرده اند.
و نکته جالب اینکه اگر بلافاصله بعد از SaveChange دوباره اطلاعات کلاس Foo رو با Id خودش از بانک اطلاعاتی واکشی کنم، میبینم که EF رکوردی رو به من می ده که در اون اطلاعات کلاس TenderType به مقدار جدید تغییر کرده اند اما در سمت DataBase ، هنوز مقدار قبلی هست.
دوستان نظری دارند که علت این رفتار EF چیست و چرا؟