我有一個針對.NET 4.0並使用EF 5.0的項目。將目標框架更改爲4.5(並更新EF 5.0引用以使用.NET 4.5程序集)後,似乎數據註釋不再有效。例如:在針對.NET 4.5之後,EF數據註釋並不「正常」
[Table("ApplicationSession", Schema = "Application")]
public class ApplicationSessionEntity
{
[Key, ForeignKey("GenericSession")]
public int GenericSessionID { get; set; }
...
用於正常工作,但現在在運行時,DbContext
拋出InvalidOperationException
:Unable to determine the principal end of an association...
。
我可以添加Fluent api調用來解決此問題(並且它),但是它不能識別該表不在「dbo」模式中。再次,我知道Fluent api可以用來解決這個問題,但爲什麼數據註釋突然被忽略?
謝謝!
您是否有對System.ComponentModel.Annotations的引用?註釋已移到.NET Framework 4.5中的此程序集。我認爲可能發生的事情是,您以某種方式使用舊註釋進行註釋編譯,而EF5運行時正在尋找新註釋。你可以按下桌子上的F12,看看它去哪裏檢查。 – Pawel
@Pawel我有一個對System.ComponentModel.DataAnnotations的引用。我相信我們升級到EF 5.0時是必需的。我曾嘗試使用該程序集的.NET 4.0和.NET 4.5版本,它們都表現出相同的行爲。 – Rob
你有沒有對EntityFramework.dll的版本是4.4.0.0的引用? – Pawel