gpt4 book ai didi

entity-framework-6 - 在数据库优先方法中从数据库(EF6)更新模型时丢失可为空的属性

转载 作者:行者123 更新时间:2023-12-04 08:00:35 36 4
gpt4 key购买 nike

我正在使用数据库优先方法,数据库没有任何外键关系(关联)。我在 edmx 文件中尝试过,但外键标量属性不能 nullable,它在 edmx 中明确设置为 false。

我想要的是:从数据库中进行更改并使用数据库中的更新模型,标量属性不得重置为nullable none
entity framework 6 中的数据库更新模型后,如何保持 nullable 属性不变?

最佳答案

我认为你的第一个类(class)应该是修复你的数据库,如果列永远不会为空,那么它们就不应该为空。然后您可以放入外键并在 Entity Framework 中创建它们。

我来到这里时遇到一个问题,即 View 具有 (none) 的可空属性,即使它们始终具有一个值,所以一个简单的示例 View

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 知道它永远不会为 null 的技巧是使用无意义的 ISNULL

ALTER VIEW [CountItems]
AS
SELECT OrderItem.Sku, ISNULL(COUNT(*),0) as total FROM OrderItem
GROUP BY OrderItem.Sku

然后 EF 数据库首先从数据库更新模型将得到提示并将其创建为不可空

希望对您有所帮助。

关于entity-framework-6 - 在数据库优先方法中从数据库(EF6)更新模型时丢失可为空的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28764382/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com