问题标签 [ef-core-2.0]
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.
c# - 升级到 EF Core 2.0:System.InvalidOperationException:无法将属性“Id”配置为“ValueGeneratedOnUpdate”
我正在将 Asp.Net Core 1.1 应用程序升级到 Asp.Net Core 2.0。
我在所有 Entity Framework 2.0 查询中都遇到了一个常见错误:
此错误是通过以下查询获得的:
主题实体如下:
其配置如下:
在项目启动中,我有以下内容:
我尝试了不同的查询和实体,但我不断收到此错误。
我错过了什么?
c# - 我必须使用哪一个,MyDbContext.Blogs.Add(ablog) 还是 MyDbContext.Add(ablog)?
考虑我有 EFCore 2.0 的上下文MyDbContext
继承DbContext
。
Blogs
是一个DbSet<Blog>
并且Blog
是一个实体模型。
当我向 中添加一个新Blog
实例时,ablog
我Blogs
必须使用哪一个?
MyDbContext.Add(ablog);
还是MyDbContext.Blogs.Add(ablog);
?
怎么样Find
?
MyDbContext.Find<Blog>(1);
还是MyDbContext.Blogs.Find(1);
?
使用一个比另一个有什么好处吗?
entity-framework - ef core 2.0 脚手架-dbcontext 自定义命名空间
我正在使用 ef core 2.0 CLI 命令scaffold-dbcontext 从现有数据库(首先是数据库)对 poco 类进行逆向工程。我想将脚手架 dbcontext 中生成的类放在我的项目中的“模型”文件夹中,但我希望类的命名空间与“MyProjectName.Model”不同。例如,我希望脚手架-dbcontext 生成的文件位于模型文件夹中,但我希望生成的文件的命名空间为“MyProjectName.Entities”。
有没有办法使用scaffold-dbcontext cli 命令控制生成的命名空间?
(给你一点背景知识,我想在生成的 pocos 中定义自定义命名空间,这样我就可以在另一个文件夹中拥有一组单独的部分类,这些类不会被使用脚手架 dbcontext 重新生成模型覆盖)。
c# - 使用 Fluent Api 的零或一对一关系 EF Core
如果我有模型:
当我在下面运行测试时,它显示该帐户已从用户中删除,但未从数据库中删除
我试图创建一个 UserEntityTypeConfiguration 来在可选字段上设置级联删除,但我似乎无法让它适用于可选字段。
任何人都可以帮忙吗?
c# - 如何将两个类映射到 EF Core 中的一个表
我可以映射到一个看起来像这样的表吗?
在映射之后, 1 将映射到:
加载 2 会导致
任何人都可以帮忙吗?
entity-framework - EF Core 2.0 scaffold-dbcontext 在另一个项目中查找ConnectionString
我正在使用 EF Core 2.0 CLI 命令scaffold-dbcontext从现有数据库(首先是数据库)对 poco 类进行逆向工程。包含我的带有ConnectionString的 appsettings.json 文件的项目与包含由 scaffold-dbcontext 生成的 poco 类的项目不同。
如何获取支架-dbcontext 命令以在另一个项目的 appsettings.json 文件中找到 ConnectionString?
c# - EF Core 2.0 TransactionScope 错误
我正在尝试在 EntityFramework Core 2.0 的 SELECT 查询中使用 TransactionScope。但是我收到此错误:“不支持在环境事务中登记。”
这个想法是在我选择查询时实现“NO LOCK”选项(我知道拥有该选项不是一个好主意,但这是供应商的要求)。所以我添加了一个扩展方法(带有 NOLOCK 的实体框架)
而且我已经设置忽略环境事务警告。
我的存储库中有如下查询
我了解 .Net Core 2.0 支持 TransactionScope。但我不确定为什么会收到此异常。
知道为什么会这样吗?
asp.net-core - 当我尝试播种时,使用 asp.net core 和 ef core 出错了
我的 startup.cs 是
我的种子课程是:
当我Update-Database
在 Nuget 包管理中时:
在类“程序”上调用方法“BuildWebHost”时发生错误。在没有应用程序服务提供商的情况下继续。错误:无法从根提供程序解析范围服务“Blog.DAL.Context.BlogDbContext”。
和
无法创建“BlogDbContext”类型的对象。将“IDesignTimeDbContextFactory”的实现添加到项目中,或查看https://go.microsoft.com/fwlink/?linkid=851728了解设计时支持的其他模式。
asp.net-core - 如何在 EF Core 2.0 中运行 `dotnet ef` 命令以针对特定的 appsettings.[environment].json
文档提到 2.0 中不支持传入自定义环境变量,但 EF 核心 1.0 支持 --environment 参数。我有点觉得 EF Core 2.0 应该仍然支持这个特性。
目前,我正在将多个应用程序部署到同一台机器上,但同一台机器上的版本不同。我正在使用 Puppet 来自动化一些部署过程,并最终在 IIS 中创建网站,例如Company.Project.[env]
. .dev、.test、.uat 之类的东西在哪里env
运行,每个都在单独的 AppPool 等下运行。现在,使用 ASP.NET Core 2.0,我可以environmentVariable
为每个部署的 aspnet 核心网站和环境变量应用一个 < > 到 web.configweb.config
优先于ASPNETCORE_ENVIRONMENT
. 在 puppet 部署期间,它会在 web.config 中为 ASPNETCORE_ENVIRONMENT 变量插入正确的值,这对我来说非常有意义,并且允许每个部署的应用程序仍然可以正确引导并加载到正确的appsettings.[environment].json
文件中。
现在,使用 EF Core 2.0,我无法做到这一点。我计划为每个环境部署一个单独的数据库项目,并为每个部署的包添加环境名称后缀,就像我在网站上所做的那样,并计划以某种方式传入 --environment 以运行任何dotnet ef
命令并让它们读取正确的appsettings.[environment].json
文件将具有正确的目标数据库环境连接字符串来运行迁移。
如果 ASPNET Core 网站支持 < environmentVariable
> ,则web.config
允许将多个项目部署到使用唯一环境变量的同一台机器上。然后我觉得EF Core应该支持传入--environment。
由于这不再受支持,那么在同一台机器上多次部署应用程序但同时运行dotnet ef
命令以针对特定 appsettings.[environment].json 以确保 ef 命令在部署项目,然后在该机器上的正确数据库上运行迁移。
asp.net - 在 EF Core 2.0 中过滤相关表
我正在.Net Core 2.0 中进行我的第一个项目。这是一个简单的博客系统。我想添加基于帖子标题和标签的搜索功能。我的实体:
到目前为止,我已经想出了类似的东西。我加入了标签表,以便能够在 IndexView 中查看每个帖子的所有标签。
这很麻烦,但我想知道是否有更简单或更好的方法。当我不包含相关表格时,.Where 函数会起作用吗?