相关疑难解决方法(0)

没有DbSet的原始SQL查询 - 实体框架核心

使用Entity Framework Core删除dbData.Database.SqlQuery<SomeModel>我无法找到为我的全文搜索查询构建原始SQL查询的解决方案,该查询将返回表数据以及排名.

我见过在Entity Framework Core中构建原始SQL查询的唯一方法是通过dbData.Product.FromSql("SQL SCRIPT");它没有用,因为我没有DbSet来映射我在查询中返回的排名.

有任何想法吗???

c# entity-framework-core

79
推荐指数
11
解决办法
6万
查看次数

当我不知道记录是否存在时,如何使用Entity Framework来执行MERGE?

这个关于实体框架和MERGE的SO答案中,如何编写代码的示例如下:

public void SaveOrUpdate(MyEntity entity)
{
  if (entity.Id == 0)
  {
    context.MyEntities.AddObject(entity);
  }
  else
  {
    context.MyEntities.Attach(entity);
    context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
  }
}
Run Code Online (Sandbox Code Playgroud)

这假设您已经知道要嵌入的实体是否存在; 在这种情况下,你检查entity.Id.但是,如果您不知道该项目是否存在,该怎么办?例如,在我的情况下,我将来自供应商的记录导入我的数据库,并且可能已经或可能没有导入给定记录.我想更新记录,如果它存在,否则添加它.但两种情况下都已设置供应商的ID.

除非我只是询问数据库是否已经存在记录,否则我无法看到任何方法这样做,这违背了MERGE的全部目的.

.net entity-framework upsert entity-framework-6

37
推荐指数
3
解决办法
3万
查看次数