我正在使用数据库优先方法,该数据库没有任何foreign key
关系(关联)。我在edmx
文件中尝试了它,但外键标量属性不能nullable
,它在edmx
中显式设置为false。
我想要的是:从数据库&更改使用数据库中的更新模型,标量属性不得重置为 nullable none
在nullable
?
entity framework 6
属性不变
答案 0 :(得分:1)
我认为你的第一个课程应该是修复你的数据库,如果列永远不为null,那么它们不应该是可空的。然后你可以将外键放入并在实体框架中创建它们。
我来到这里有一个问题,即视图具有(无)的可空属性,即使它们总是有一个值,所以一个简单的示例视图
CREATE VIEW [CountItems]
AS
SELECT OrderItem.Sku, COUNT(*) as total FROM OrderItem
GROUP BY OrderItem.Sku
给你
public partial class CountItems
{
public string Sku { get; set; }
public Nullable<int> total { get; set; }
}
尽管总数永远不会为空。让EF知道它永远不会为空的技巧是使用无意义的ISNULL
ALTER VIEW [CountItems]
AS
SELECT OrderItem.Sku, ISNULL(COUNT(*),0) as total FROM OrderItem
GROUP BY OrderItem.Sku
然后,数据库中的EF数据库第一次更新模型将获得提示并将其创建为不可为空的
希望这可能会有所帮助。