问题标签 [entity-framework-6.4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
entity-framework-core - 如何使用新的 EF 6.4 搭建 dbcontext?
我将 Windows 桌面应用程序中的实体框架更新到 6.4 并阅读了有关新功能的信息。看到 EF 6.4 现在基于 EF Core 3.0,我想摆脱 .edmx 文件并使用 EF Core 提供的命令行脚手架选项。
如何从笨重的 .edmx 文件迁移到命令行生成?这甚至可以使用新的 EF(无需切换到 EF Core)吗?
提前致谢!
entity-framework-core - 如何使用身份、身份验证和授权配置 ASP.NET Core 3.1 网站以使用 Entity Framework 6.4
提供 .NET Standard 2.1 版本的 EF6 的目的被理解为是协助分阶段升级现有项目。
所以我们有一个由网站、Windows 服务和控制台应用程序组成的现有解决方案。我们正在将其从 .NET Framework 升级到 .NET Core。
最好让它在 .NET Core 中再次运行,但目前仍使用 .NET Standard 2.1 版本的 EF6。
EF6 模型派生自IdentityDbContext
以便包含用户、角色等的身份存储。
所有代码现在都在 .NET Core 或 .NET Standard 程序集中。
升级后的 Windows 服务和控制台应用程序基本上可以正常工作,但是我们在网站上苦苦挣扎。
尽管令人担忧的是,为了让数据层程序集编译一些 packageReferences 是必要的,它们在解决方案资源管理器中显示黄色三角形警告:
“包 x 是使用 .NET Framework 4.6.1 恢复的……这个包可能不完全兼容……”
暂时忽略这些警告,表演者正在了解如何获得一个带有身份、身份验证和授权的 ASP.NET Core 网站,以使用 EF6。
例如,显示 EF Core 用法的示例在其ConfigureServices
功能中有:
但是'.UseSqlServer'来自程序集Microsoft.EntityFrameworkCore.SqlServer
还有:
AddEntityFrameworkStores
再次与 EF Core 存储相关。
例如 2
这个包形成了 ASP.NET Core 和身份基础设施之间的桥梁:
所以有人会认为,要让 EF6 与 ASP.NET Core 一起工作,需要有一个本质上相似的包(组成名称)Microsoft.AspNetCore.Identity.EntityFramework6
如果可以将 EF6.4(包括身份相关表)与 ASP.NET Core 结合使用,请您指出实现此目的的示例吗?
或者,如果您知道这种组合绝对不可能,也请告诉我。
c# - 我的 EF6 关系在 ID > 1 的情况下不起作用,我做错了什么?
这是我第一次接触实体框架——作为一个长期使用 Linq2Sql 的人,我从来没有人向我展示过 EF 做得更好的地方。我已经学习了一些 MS 教程,并且我有一个可以轻松创建数据库和存储内容的上下文。我可以用 LINQ 查询它,所以它仍然很熟悉。
什么不工作,虽然是一种关系。我有三个类,分别称为 Product、Place 和 Price。它们都有一个 int Id。Product 和 Place 都有一个虚拟收藏,Price 对 Product 和 Place 都有一个属性。
逻辑模型是我有一个在零个或多个地方销售的产品列表,并且任何产品在每个位置都可能有不同的价格(想想当地的税收调整)。
我的第一个测试不会填充产品的价格列表,因此 myProduct.Prices 为空。我通过自己获取价格清单来解决这个问题
var prices = dB.Prices.Where(...)
我的问题是,当我有多个地点(Id 1 和 2),并且我输入了多个价格的数据时,当 ID 为 2 时,地点为空。
我尝试将数据直接添加到表中(一个 ID 为 2 的地方,一个 Place_Id = 2 的价格)。我试过用代码添加它们。
如果我进入 Price 表并将 Place_Id 都更改为 1,则它们都检索 Place 1。如果我将它们都设置为 2,它们都会给我 null Place。如果我每种方式都设置一个,则带有 1 的一个有效,另一个为空。
所以我的关系有效,但只有当 FK 为 1 时。我做过 WTF 吗?
编辑:代码示例(对不起,我之前在手机上)
我试过直接插入行,我也试过
所有这些数据都被插入,我可以查询数据库来查看它。
即将解开的代码是:
我注意到了一些有趣的事情。如果我加入更多产品,它适用于任何产品 ID。另外(我怀疑这是根本问题),我注意到 o.Product 是 Product 类型,但是 o.Place 是 DynamicProxies.Place_Guid 类型 - 但我不明白为什么这些不同我已经在与您在上面看到的相同的时尚。
localdb - 尝试为文件 [...] 附加自动命名的数据库失败。存在同名数据库 [...]
使用 LocalDB 开发实体框架项目时会产生以下错误...
class Initializer : DropCreateDatabaseIfModelChanges<Context>
与实体框架 6.4 一起使用Database.EnsureDeleted(); Database.EnsureCreated();
使用 Entity Framework Core 3.1调用
错误信息
连接
发生此异常的原因是什么?
vb.net - 即使 MSL 在资源中,如何在运行时在 EF 模型的概念信息和存储信息之间进行转换?
在另一篇文章(如何为 EF4 实体上的属性提取数据库表和列名?)中,我提供了一个答案(页面顶部),用于在运行时提取实体框架模型的存储信息(表/列) 来自概念信息 ( entity/property-expression )。通常,不需要这样的功能——但有时它很有用,比如当你想为在运行时创建的数据库的实体表中添加额外的索引时。
我的解决方案(见下文)的缺点是它要求 MSL 映射信息位于单独的文件中(即宿主项目将元数据复制到输出路径)或其 XML 已经可用。如果 MSL 元数据作为程序集资源嵌入会怎样?(XElement 方法无法解析“res://”路径名!)那么如何获得映射(或映射的 XML)呢?
任何解决方案(无论是使用 XML、元数据工作区还是其他)都必须适用于针对 .NET 4.7 之前的平台(即 .NET 4.6.1)的项目,能够适用于任何EF 模型(无论无论是创建模型优先、数据库优先还是代码优先),并且能够处理复杂属性信息(即Entity.ComplexProperty. ... .ComplexSubProperty.ScalarProperty)以及标量属性信息。理想情况下,它还应该与 DbContext 派生的上下文一起使用(尽管可以从 DbContext 中提取 ObjectContext)并位于 VB.NET 中。(我目前正在使用带有 EF 6.4 的 Visual Basic 2019,并且我的“宿主项目”针对 .NET 4.6.1。)
从角度来看,这是我现有解决方案的代码(请记住我想要减轻的上述限制):
主机代码:(对于给定的 XML 示例 [见底部],当给定实体“Location”和属性表达式“Address.Street”[以及概念模型名称“SCTModel”]):
班级代码:
这是示例XML——我从上面代码中的“.\SCTModel.msl”文件加载:
再一次,当 MSL 映射信息作为资源嵌入到项目中时(即“res://SCTModel.msl”) ,我的问题是从概念信息(entity/property-expression )获取商店信息(table/column )
entity-framework - 为具有 DB NULL 的列重新水化实体时,实体框架是否调用具有 null 的属性设置器?
我有一个字符串属性
因为我希望它会被调用....
但真的会吗?(EF6.4)
c# - 使用 Code First EF 6.4.4 的第一个应用程序:SQL Server 连接错误
我刚开始学习 EF(不是核心),并且正在创建我的第一个代码优先应用程序。这是一个 C# 控制台应用程序,我所做的只是添加一个迁移,然后简单地创建示例数据库(与我的解决方案同名)。当我尝试运行Update-Database
时,我收到此错误:
建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。)
我搜索并实施但仍无法解决的步骤是:
- 我在 SQL Server 配置管理器中启用了 TCP/IP 端口
- 确保所有服务都在运行(浏览器、SQL Server)
- 在 Windows Defender 防火墙中添加了一个例外
- 选中复选框以允许“远程连接”
我的连接字符串是:
还尝试删除“localDB”但无济于事。
使用包管理器控制台在 C# 代码中遵循的步骤是:
- 安装包 EntityFramework
- 启用迁移
- 添加迁移 CreatePost
- 更新数据库
我将非常感谢在这方面的任何帮助。
c# - 每当我重新打开 Visual Studio 2019 时,实体框架都会给出错误“无法加载文件或程序集”、“FileNotFoundException”
我正在使用 Visual Studio 2019 Ent 和 EntityFramework.6.4.4。每当我重新启动我的 VS19 并访问 EF 时,它都会给我以下代码优先方法的错误。
到目前为止我所尝试的:我找到了一个临时解决方案,通过每次重新安装 nugete 包即实体框架并且它可以工作。但这很烦人,绝对不是解决方案。寻找永久解决方案。提前致谢。
c# - Entity Framework 6.4 支持二级 (L2) 结果缓存?
我想知道 EF 6.4 是否支持第二个狂欢缓存(结果缓存 - 不是查询缓存),而无需使用第三方库(如 EntityFramework.Cache 或 NCache)进行扩展。
oracle - EntityFramework 6.4.4 Code First“更新数据库脚本”生成不完整的sql Oracle devart驱动程序
Update-Database -script 命令生成不完整的 sql。
奇怪的行为是缺少的 sql 输出被转储到包管理器控制台中。
迁移示例:
SqlQuery_1.sql 生成的文件只包含
包管理器控制台的内容是转储其余更新脚本内容的地方:
有什么解决办法吗?用于正常工作。在 Visual Studio 2017 和 2019 上表现出来
这是一个简单的示例,但更复杂的迁移会在生成的 sql 文件和包管理器控制台之间拆分文本部分,并且很难以正确的方式组合在一起。
我正在将 Devart Dotconnect 用于实体框架的 Oracle 驱动程序