gpt4 book ai didi

c# - 为什么我的 Entity Framework 代码不首先 DbContext 显示我填充的表中的实体?

转载 作者:太空狗 更新时间:2023-10-29 23:52:23 24 4
gpt4 key购买 nike

我正在尝试将我的应用程序部署到测试环境,但无法让 Entity Framework 与数据库很好地配合使用。在开发中,我使用数据库初始化程序来为数据库播种,并且运行良好。但是,当我将应用程序部署到实际的 IIS 实例时,我无法让它与数据库交互。我的自定义初始化规则根本没有运行,所以我改为手动创建数据库。

我使用 ObjectContext.CreateDatabaseScript() 作为我的 SQL 脚本的起点,SSMS 验证相应表中是否填充了两行。

我的问题是在运行应用程序后出现的。我有自定义成员资格和角色提供者,它们似乎都没有检测到数据库中存在这两个角色。

如何让我的 Entity Framework 识别这些行不为空?我目前在存储库中使用私有(private) DbContext 来处理与 Entity Framework 的通信,并禁用我的自定义初始化程序,直到解决此问题。

尝试在数据库中查找角色的代码:

context.Roles.Single(r => r.Name == role)

数据库在 Roles 表中显示以下内容:

Id  Name     Description
1 Company NULL
2 Customer NULL

LINQ 生成空序列异常,因为 context.Roles 为空。

最佳答案

从评论来看, Entity Framework 和数据库之间似乎没有联系。您没有提到您使用的是哪个版本的 Entity Framework ,但我假设您已经更新到最新版本(截至撰写本文时为 4.3)。

我注意到您说您正在“手动创建数据库”。为什么不打开一个测试项目并根据您手动创建的数据库创建一个新的数据库优先模型?这应该至少确认您可以在您的配置中使用 Entity Framework 。从那里我会从头开始创建另一个项目来测试 Code First 方法。

关于c# - 为什么我的 Entity Framework 代码不首先 DbContext 显示我填充的表中的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9332346/

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