Tag: entity framework core

过滤所有查询(尝试实现软删除)

我试图在EF Core 2.0中开展软删除行为。 public interface ISoftDeleteModel { bool IsDeleted { get; set; } } 创建正确的列和软删除工作正常,但DbContext中的过滤实体不是。 我想在上下文中使用查询过滤,但我被卡住了。 protected override void OnModelCreating(ModelBuilder modelBuilder) { Type entityType; // ^^^ it contains type of entity, eg. Blog, Post, etc. using // modelBuilder.Model.GetEntityTypes().First().Name and converting to Type var entity = modelBuilder.Entity(entityType); if(entityType.GetInterface(“ISoftDeleteModel”) != null) { // ??? how to access […]

显示.NET Core中间接引用的包的类

我试图用ASP.NET / Entity Framework Core实现基本的UoW / Repository模式,我遇到了非常令人不安的行为。 我的解决方案共包含4个项目。 .DAL项目 ,我的实体类被定义,我的DbContext定义在哪里: public class Product { public int Id { get; set; } public string Name { get; set; } } public class ApplicationDbContext : DbContext { public DbSet Products { get; set; } } .Facade项目,我的IUnitOfWork和IProductRepository定义在: public interface IUnitOfWork { IProductRepository Products { get; } } public […]

在Asp.Net Core中动态更改连接字符串

我想在控制器中更改sql连接字符串,而不是在ApplicationDbContext中。 我正在使用Asp.Net Core和Entity Framework Core。 例如: public class MyController : Controller { private readonly ApplicationDbContext _dbContext public MyController(ApplicationDbContext dbContext) { _dbContext = dbContext; } private void ChangeConnectionString() { // So, what should be here? } } 我怎样才能做到这一点?

内存数据库不保存数据

我有一个简单的web应用程序,在客户端有角度,在服务器端有asp.net核心web-api。 我使用InMemoryDatabase services.AddDbContext(options => options.UseInMemoryDatabase(“ItemsDB”)); 存储数据以简化开发。 但我遇到了一个问题。 我在web-api上有一个控制器来响应用户的请求: [Route(“api/[controller]”)] public class ItemsController : Controller { private readonly IApiService apiService; public ItemsController(IApiService apiService)//using DI from Startup.cs { this.apiService = apiService; } [HttpPost, Route(“addItem”)] public async Task Add([FromBody]Item item) { return await apiService.Add(item); } [HttpDelete(“{id}”)] public async Task Delete(int id) { return await apiService.Delete(id); } [HttpPut] public […]

动态访问EF Core 2.0中的表

我正在使用System.Linq.Dynamic.Core将lambda表达式动态添加到EF中的查询。 我也希望能够按名称选择表格。 我找到了这个答案: https://stackoverflow.com/a/28101268/657477 但它不适用于asp.net core 2.0。 我不能使用DbSet我必须使用DbSet它在错误消息中说。 我希望能够做db.GetTable(“Namespace.MyTable”).Where(…) 我怎样才能做到这一点?

多对多的自我引用关系

我是EF的新手。 我遇到了创建多对多自引用关系的问题。 我尝试使用以下解决方案: entity framework核心:与同一实体的多对多关系 我的实体: public class WordEntity { public long Id { get; set; } public string Name { get; set; } public string Json { get; set; } public virtual List Sinonyms { get; set; } } public class WordSinonymEntity { public long WordId { get; set; } public virtual WordEntity Word […]

如何使用EntityFramework 7和Asp.Net 5调用SQL存储过程

在过去的几天里,我正在寻找一些关于如何使用EntityFramework 7从Web API控制器方法中调用Stored Procedure教程。 我通过的所有教程都反过来展示了它,即Code First方法。 但我已经有了一个数据库,我需要用它来构建一个Web API 。 各种业务逻辑已经编写为存储过程和视图,我必须使用来自Web API的那些逻辑。 问题1:这是否可以继续使用EF7 Database First方法并使用上面的数据库对象? 我通过以下NuGet命令将EntityFramework 6.1.3安装到我的包中: install-package EntityFramework ,它将版本6.1.3添加到我的项目中,但立即开始显示错误消息(请参阅下面的屏幕截图)。 我不清楚如何解决这个问题。 我有另一个测试项目,在project.json我可以看到两个如下的条目: “EntityFramework.MicrosoftSqlServer”: “7.0.0-rc1-final”, “EntityFramework.MicrosoftSqlServer.Design”: “7.0.0-rc1-final”, 但是,当我在Nu-Get包管理器中搜索时,我看不到这个版本! 只有6.1.3即将到来。 我的主要目标是从现有数据库中使用已编写的存储过程和视图。 1)我不想使用ADO.Net ,而是想使用EntityFramework来使用ORM 2)如果EntityFramework 6.1.3能够从现有数据库调用Stored Procs和Views ,我如何解决错误(截图)? 实现这一目标的最佳做法是什么?

如何在Entity Framework Core 2中播种?

我有两张桌子,我想用种子填充它。 我在Ubuntu中使用ASP.NET Core 2。 如何填充两个表的数据,哪一个通过外键与其他表连接? 流量计有很多笔记和笔记属于flometer。 我想做这样的事情,但它应该存储在数据库中。 new Flowmeter {Make=”Simple model name”,SerialNum=45, Model=”Lor Avon”, Notes = new List() { new Note(){Value=45,CheckedAt=System.DateTime.Now}, new Note(){Value=98,CheckedAt=System.DateTime.Now} } }