我有一個現有數據庫(,我無法以任何方式修改),我想使用EF進行編碼。沒有主鍵,外鍵或表之間的實際關係 - 一切似乎都由使用數據庫的應用程序處理。對於大多數表/實體來說,這是微不足道的。不過,我有一堂課,就像我正在努力的下面那個(簡化)課。當行的值爲空時,實體框架返回空對象
[Table("tableName")]
public class MyClass
{
[Key]
[Column("id")]
public int? Id { get; set; }
[Column("name")]
public string CompanyName { get; set; }
[Column("address")]
public string Address { get; set; }
}
像_context.MyClasses.Where(x => x.Address == "something")
這樣的事情可以正常工作。但是,似乎當數據庫中的id列爲NULL時,即使CompanyName和Address有值,我也會返回空對象。我需要這些值,而不管id(或其他)是否爲null。有什麼方法可以強制EF生成對象並忽略空列嗎?
刪除或移動[Key]屬性給了我一個例外,如「必須有一個關鍵列」(如果有任何匹配,Id列也用於將其他類的集合映射到這個集合中) 。
UPDATE不要將Id列視爲實際標識符。它基本上只是一個愚蠢的名字的整數。
PK如何能爲空......不是通過技術選項,而是通過使用... – 2012-07-06 09:06:53
它不是真正的DB中的PK,它似乎必須在實體中標記爲Key才能成爲能夠收集一些其他實體到它... – 2012-07-06 09:07:49
btw爲「必須有一個關鍵列」存在一個解決方法:只需將所有列標記爲關鍵(如EF做它與ambigous意見),或添加一個新列(auto inc) – 2012-07-06 09:09:04