迁移:DbSet <t> .AddOrUpdate麻烦

时间:2016-09-19 09:28:37

标签: c# entity-framework-6

当我在Migration类中使用这样的方法时:

DbSet<T>.AddOrUpdate( new Instance(){});

该方法只生成插入T-SQL,并且我收到一个异常,因为该行中存在该行。

Migration类中的slibing方法如下:

DbSet<T>.AddOrUpdate( p=>p.name,new Instance(){}): 

我无法以我的方式对此进行转换(该表有一个连接索引(Column1,Column2))。

现在我的问题是:如何使用方法

public static void AddOrUpdate<TEntity>(
    this IDbSet<TEntity> set,
    Expression<Func<TEntity, Object>> identifierExpression,
    params TEntity[] entities
)where TEntity : class

参数identifierExpression 我必须定义表的拖曳列以确定是否应该执行添加或更新操作

1 个答案:

答案 0 :(得分:1)

使用此语句将解决问题,因为它无法索引您的列。

DbSet<T>.AddOrUpdate( new Instance(){});

你应该改用它吗?

context.People.AddOrUpdate(p => new { p.FirstName, p.LastName }, people);