gpt4 book ai didi

entity-framework-4 - 如何定义 DatabaseGenerated.Computed 应该计算什么?

转载 作者:行者123 更新时间:2023-12-04 07:51:41 25 4
gpt4 key购买 nike

我刚刚开始使用 EF CodeFirst,尤其是 dataAnnotations。现在我正在尽我所能去理解“DatabaseGenerated”属性。目前我所知道的:

  • 使用此属性为我提供了三个选项来处理属性值的创建:Computed、Id 和 None。
  • 使用此属性意味着无法手动更新该属性 - 它由数据库完成

所以 - 正如我可以想象使用“Id”选项时会发生什么,我不知道使用“计算”​​选项时会发生什么。我认为这应该告诉数据库计算字段值。

例如:字段“总和”=字段“价格”+字段“运费”。

但是我怎样才能那样使用它呢?我环顾四周,没有找到任何例子。你能帮帮我吗?

最佳答案

您不能使用 EF 告诉数据库如何计算该列——您只能告诉 EF 该列是数据库生成的,因此应该从数据库中检索它以供您在代码中使用。

要控制数据库如何计算列,您必须在 EF 之外或在数据库初始化逻辑中手动指示它。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
context.Database.ExecuteSqlCommand("RAW SQL HERE");
}

您的 SQL (MS T-SQL) 可能如下所示 (more here):

CREATE TABLE t2 (a int, b int, c int, x float, 
y AS CASE x
WHEN 0 THEN a
WHEN 1 THEN b
ELSE c
END)

对于 SQL,这里有一些关于计算列的信息: http://msdn.microsoft.com/en-us/library/ms191250(v=sql.105).aspx

另供引用: http://msdn.microsoft.com/en-us/library/gg193958.aspx

关于entity-framework-4 - 如何定义 DatabaseGenerated.Computed 应该计算什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11502862/

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