我在 EF Core 应用程序中有以下方法
public List<Prj_Detail> GetByOrg(string org)
{
var data = _context.Prj_Details.Where(w => w.Account_Name == org).ToList();
return data;
}
Run Code Online (Sandbox Code Playgroud)
在这里,==
我需要检查Like
如何在我的方法中做到这一点
我正在使用EF Core 2.0 CLI命令scaffold-dbcontext从现有数据库(数据库优先)中反向工程poco类。包含带有ConnectionString的 appsettings.json文件的项目与保存由scaffold-dbcontext生成的poco类的项目不同。
如何获取scaffold-dbcontext命令以在另一个项目的appsettings.json文件中找到ConnectionString?
我正在尝试将外键详细信息作为查询的一部分。
我怎样才能使用EF.coreLEFT JOINs
而不是INNER JOINs
?
public class Offence
{
[Key]
public Int32 offence_id { get; set; }
public Int32 guard_id { get; set; }
public Int32 penalty_id { get; set; }
public DateTime? dt_recorded { get; set; }
public Int32 salary_id { get; set; }
public Decimal? amount { get; set; }
public String status { get; set; }
public Int32 site_id { get; set; }
public Guard Guard { get; set; }
public Salary Salary …
Run Code Online (Sandbox Code Playgroud) 该模型:
public class AccountUser
{
public long AccountUserId { get; set; }
...
public long UserPermissionGroupId { get; set; }
public UserPermissionGroup UserPermissionGroup { get; set; }
}
public class UserPermissionGroup
{
public long UserPermissionGroupId { get; set; }
...
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
问题: 如何在表AccountUser-> UserPermissionGroup上设置外键以限制删除?
我无法找到如何在删除操作上设置外键以限制只有一个表的示例.我不能使用类似WithMany/WithOne然后OnDelete如本例https://docs.microsoft.com/en-us/ef/core/modeling/relationships#cascade-delete-1因为我没有从UserPermissionGroup参考回到AccountUser.
非常感谢你.
我使用VSCode 创建了一个API .Net core
并EFCore
遵循本教程.
我有很多我的MySQL数据库的模型,因为我是"迁移"我EF6
跟asp.net WebAPI
到.Net core
,所以我只是复制粘贴,避免了大量的工作(再次).
当我尝试做一个简单Get
的事情时,EFCore连接两列不同的表:
控制器用户
[Route("v1/[controller]")]
public class UserController : Controller
{
private readonly IntentContext _context;
public UserController(IntentContext context)
{
_context = context;
}
[HttpGet]
public IEnumerable<user> GetAll()
{
return _context.user.ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
'用户'模型
public class user
{
public user()
{
user_image = new HashSet<user_image>();
user_credit_card = new HashSet<user_credit_card>();
user_pocket_history = new HashSet<user_pocket_history>();
user_pocket = new HashSet<user_pocket>();
//A lot of table instances
} …
Run Code Online (Sandbox Code Playgroud) c# entity-framework entity-framework-core .net-core ef-core-2.0
使用实体框架,我们已经获得了一个字段.EF核心的替代品是什么?
https://msdn.microsoft.com/en-us/library/jj591620(v=vs.113).aspx
我尝试使用hasRequired,但它会抛出错误.
谁能告诉我为什么这两种匿名类型不一样?
{Name = "<>f__AnonymousType0`6" FullName = "<>f__AnonymousType0`6[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}
{Name = "<>f__AnonymousType0#1`6" FullName = "<>f__AnonymousType0#1`6[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Decimal, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}
Run Code Online (Sandbox Code Playgroud)
澄清:(我不知道它是否重要,但是一个匿名类型带有#符号。哦,#01)
我有这两段代码。在同一个类(程序集)中。一个返回上面的匿名类型之一,另一个返回另一个。但是,两者都在评估相同的表达式。
我做了下面的比较(有些只是为了查看结果,即使有些应该正确地返回false)。但是,它们都返回false。(我可能遗漏了一些我尝试过的东西)
ms返回匿名类型之一。resultOfSelect返回另一个匿名类型。
注意:第二段代码中的methodArgumentStringContainingSelectStatement包含与字符串相同的表达式。
'ms == resultOfSelect'
'ms.GetType()== resultOfSelect'
'ms.GetType()。Equals(resultOfSelect.GetType())'
'ms.GetType()== resultOfSelect.GetType()'
resultOfSelect debugView是:
{Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable <<> f__AnonymousType0#1>} …
我想知道在优先使用 EF Core 数据库时是否有处理迁移的标准方法。
每次我对数据库进行更改时,我都会在 CLI 中运行它:
dotnet ef dbcontext scaffold "Data Source=(local);Initial Catalog=myCatalog;Trusted_Connection=true;" Microsoft.EntityFrameworkCore.SqlServer -o Models -f
Run Code Online (Sandbox Code Playgroud)
它的问题覆盖了我在其他实体和 dbcontext 中所做的每一个更改,例如,我Id
为每个实体都有一个接口,当我搭建脚手架时,我以后需要再次将其添加到实体中,是否可以将项目与数据库或者只是特定的实体?
另一个问题是,我最近不得不DeleteBehavior
将实体的默认值从更改为DeleteBehavior.ClientSetNull
,DeleteBehavior.Cascade
所以现在每次使用脚手架方法时,我都需要手动更改OnModelCreating
方法中的100 多个实体。
sql-server entity-framework entity-framework-core ef-core-2.0
我从一个空的asp.net core 2项目开始,想要向其添加功能,以便我可以学习所有内容。我已经创建了一个连接到的Azure数据库,并且我的项目中有一个dbContext。我正在使用ASP.NET Core标识,并且已成功将表添加到应用程序中。我试图在数据库上下文中进行一些更改,并将其推送到数据库中。据我了解,这需要使用EF Core中的“代码优先”来完成。当我尝试在PMC中创建新迁移时,出现以下错误。我不知道这是什么意思。有什么想法吗?我该如何解决?
TIA
错误信息:
无法将表'AspNetRoleClaims'用于实体类型'AspNetRoleClaims',因为它已用于实体类型'IdentityRoleClaim',并且主键{'Id'}和主键{'Id'}之间没有关系。
我的数据库上下文的来源:
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
namespace PooperApp.Models
{
public partial class PoopTheWorldContext : Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityDbContext<ApplicationUser, ApplicationRole, Guid>
{
public virtual DbSet<AspNetRoleClaims> AspNetRoleClaims { get; set; }
public virtual DbSet<AspNetRoles> AspNetRoles { get; set; }
public virtual DbSet<AspNetUserClaims> AspNetUserClaims { get; set; }
public virtual DbSet<AspNetUserLogins> AspNetUserLogins { get; set; }
public virtual DbSet<AspNetUserRoles> AspNetUserRoles { get; set; }
public virtual DbSet<AspNetUsers> AspNetUsers { get; set; }
public virtual DbSet<AspNetUserTokens> AspNetUserTokens { …
Run Code Online (Sandbox Code Playgroud) 由于在任何请求后拥有EF Core后端时,Web API是无状态的,因此DbContext将被断开。
因此QueryTracking
,NoTracking
由于默认行为TrackAll
自Web应用程序以来没有任何好处,因此我们取得了成功
DbContext.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
Run Code Online (Sandbox Code Playgroud)
通过Web API使用时,是否有将DbContext保持在连接状态的方法?
例如:
在上述情况下,是否可以重用/保持连接状态?
c# entity-framework asp.net-web-api asp.net-core ef-core-2.0
ef-core-2.0 ×10
c# ×5
.net-core ×3
asp.net-core ×2
linq ×2
asp.net-mvc ×1
left-join ×1
roslyn ×1
sql-server ×1