gpt4 book ai didi

c# - 实体类型 [class] 不是当前上下文模型的一部分

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:46 24 4
gpt4 key购买 nike

我在本地服务器上有数据库,我正在尝试使用 Entity Framework 获取数据。 VS 已经自动创建了 edmx 模型和连接字符串,现在当我尝试像这样访问数据时:

using (var context = new NSMASEntitiesTEST())
{
var mases = context.Mas;
foreach (var mas in mases) //error on this line
{
//
}
}

它给我以下错误:

实体类型 Mas 不是当前上下文模型的一部分。

但问题是我只对具有一列 geography 数据类型(例如 Mas)的表出现此错误。其他表工作正常。

我想知道这个问题是否只是因为地理数据类型引起的,因为我浏览了类似问题的答案,但对我没有任何帮助。

Mas.cs 中:

public partial class Mas
{
public int MasId { get; set; }
public string MasName { get; set; }
//...
public Nullable<System.DateTime> MasContractSzif { get; set; }
public System.Data.Spatial.DbGeography MasBoundary { get; set; }
}

编辑:

我创建了 2 个空表用于测试:

首先有 2 列 INT 和 NVARCHAR(50)

第二个,有 3 列 INT、NVARCHAR(50) 和 GEOGRAPHY

而且只有当我想访问第二个表时才会报错,所以这肯定是由地理类型引起的。

最佳答案

好的,我已经解决了。 EF 6 错误地生成了此数据类型。

在旧版本的 EF 中,此数据类型位于 System.Data.Spatial.DbGeography 中,而 EF 6 仍会像这样生成 geography 数据类型。但现在应该是 System.Data.Entity.Spatial.DbGeography

我刚刚在包含 geography 数据类型的每个类(表)中重写了它,所有这些表现在都可以正常工作。

关于c# - 实体类型 [class] 不是当前上下文模型的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24780872/

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