问题标签 [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# - ASP.NET Core 多个 dbcontext 无法添加迁移
我有 2 个 DbContext:
当我尝试跑步时
我得到:
如果我运行:
结果是:
找不到第二个 DbContextAppDbContext
配置数据库上下文:
应用数据库上下文:
c# - 附加列不会提交到先前迁移中创建的表
我最初创建了一个包含这些列的表。
我有以下类,它已经由数据库中的迁移创建。
}
我使用以下命令创建迁移,然后更新数据库。
但是,当我向它添加一个新列时,即使它现在在新类中,它也不会将用户 id 列提交到表中,它不会产生任何错误,只是在包管理控制台中说完成但它没有添加列到数据库上的表中。有人可以告诉我我可能做错了什么谢谢。有问题的领域是
公共 Guid 用户 ID { 获取;放; }
asp.net-core - ASP.NET Core 2 - AspNetRoleClaims
我从一个空的 asp.net core 2 项目开始,想向它添加功能,以便我可以学习所有部分。我在 Azure 中创建了一个要连接的数据库,并且我的项目中有一个 dbContext。我正在使用 ASP.NET Core 标识,并且已成功将表添加到应用程序中。我正在尝试对我的数据库上下文进行一些更改并将其推送到我的数据库中。这就是我所理解的,需要在 EF Core 中使用“代码优先”来完成。当我尝试在 PMC 中创建新迁移时,出现以下错误。我不知道这是什么意思。对此有什么想法吗?我该如何解决这个问题?
TIA
错误信息:
不能将表 'AspNetRoleClaims' 用于实体类型 'AspNetRoleClaims',因为它用于实体类型 'IdentityRoleClaim' 并且主键 {'Id'} 和主键 {'Id'} 之间没有关系。
我的数据库上下文的来源:
c# - .`ToListAsync()` 的目的是什么
如果我尝试运行此代码
我会收到这个错误:
InvalidOperationException:源 IQueryable 未实现 IDbAsyncEnumerable。只有实现 IDbAsyncEnumerable 的源才能用于实体框架异步操作。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=287068
按照提供的链接,我们可以阅读以下声明
[...] 因为它们仅设计用于实体框架,如果您尝试在不是实体框架查询的 LINQ 查询上使用它们,您可能会收到以下错误。
那为什么我不能在 DbSet 上使用它呢?对我来说,DbSet 显然是一个与实体框架相关的类,因为它可以在 EntityFramework 程序集中找到......
根据DbSet MSDN 文档,它实现了IDbAsyncEnumerable.GetAsyncEnumerator()
。如果IDbAsyncEnumerable
实现了,为什么不能.ToListAsync()
运行?
另外,通过使用 ReSharper 反编译器深入研究代码,我无法理解它在什么时候出错了......AsDbAsyncEnumerable
内部使用的方法试图将我的方法DbSet<T>
转换成一个IDbAsyncEnumerable<T>
应该可以工作的方法,因为DbSet
它实现了它......
此时,我的代码使用以下行,这正是我期望.ToListAsync()
在内部执行的操作。
为什么不ToAsyncEnumerable
内部使用?如果它在 normal和 aToListAsync
上都不起作用,将在哪种情况下使用?IQueryable
DbSet
c# - 安装 EF Core V2.0 时,为什么我会看到针对已安装引用的警告
我正在测试 EF Core,看看它是否适合在新项目中使用。开发环境如下:
视觉工作室 2017 (15.4)
我创建了一个针对 Dot Net 完整框架版本 4.7 的新类库 (C#),然后保存项目,之后我打开 Nuget 包管理器并键入以下命令...
Nuget 然后安装它确定项目需要的所有位。然后,当我查看添加的参考文献时,我看到以下内容;
查看标有警告的那些引用的属性,我注意到似乎没有与它们关联的版本信息。我的第一个想法是,这可能是针对 Dot Net 4.7 的问题,所以我对 Dot Net 4.6.2 进行了同样的尝试,产生了类似的结果,尽管使用了一些不同的 Dll。在这两种情况下,项目都成功构建。
有没有其他人看到这个或知道原因/解决方案可能是什么?
sql-server-2012 - 使用视图模型优化相关数据查询
我有一个带有 MultiSelectFor 列的 Kendo UI MVC Core Orders 网格,它可以有多个客户。一切正常,但我有超过 2000 条记录,因此显示我的列表需要很长时间,因为需要从多对多表中获取相关数据。
我首先在 EF 中使用数据库,所以我搭建了 db 模型。
下面是 EF 生成的 Orders 表的模型(我已经删除了不必要的代码):
我的视图模型 OrdersVM(视图模型):
EF 生成 OrdersCustomers 代码:
我的订单客户视图模型:
我的控制器:
我想使用缓存等优化我的代码,因为拥有这么多 SQL 查询是没有意义的(我可以在 SQL Server profiler 中看到)。
我的剑道网格是 Ajax 批处理(真)incell 类型的网格。
c# - ASP.NET Core 2.0 无法返回 EF 触摸对象
我有以下发布功能,它基本上只需要一个多部分发布(fileDataModel.File 是一个 IFormFile 对象)并将文件元数据保存到数据库并将文件保存到硬盘驱动器。
现在这个函数工作正常,做它应该做的,但是如果 Ok() 中的返回对象在某些时候被 EF 触及(特别是 fileData 和 contactData),则无法返回。邮递员报告未收到任何回复。如果我输入任何其他对象,它会返回该对象就好了。我似乎找不到障碍,因为我没有得到任何异常或任何东西,只是未能返回。任何帮助将不胜感激。
c# - 带有 EF Core 的时间戳/行版本列
我试图弄清楚我应该如何首先通过实体框架代码向 SQL Server 中的数据表添加Timestamp
/rowversion
列。
这是使用 EF Core V2.0。
我尝试了两种方法来实现这一点,第一种:
第二个通过 fluent API:
在我运行后的两种情况下Add-Migration
,我都会得到以下信息:
我本来希望该RowVersion
列是 typetimestamp
并且它的nullable
属性是false
. 这是 EF Core 的限制还是我试图不正确地执行此操作?
left-join - 如何让 EF.core 使用 LEFT JOIN 而不是 INNER JOIN
我正在尝试将外键详细信息作为查询的一部分。
如何让EF.core使用LEFT JOINs
而不是INNER JOINs
?
在控制器 GetList
生成的 SQL:
c# - 如何将泛型类型与实体框架核心一起使用?
如果我有一个看起来像这样的域模型:
我想将它用于内置数据类型(字符串、int 等)以及日期。我想像这样使用它:
如何使用 EF Core 将其保存到数据库中?
我想数据库表看起来像