2016-09-19 77 views
0

当我使用这样的移民类中的方法:迁移:DbSet <T> .AddOrUpdate麻烦

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

刚才的方法生成插入T-SQL,和我收到一个例外,因为该行有存在于表。

在迁移类的slibing方法是这样的:

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

以我的方式,我不能改变这个(这个表有一连接索引(列1,列2))。

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

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

identifierExpression 我必须定义的表的拖栏参数以确定添加或更新操作是否应当进行

回答

1

使用此声明将解决一个问题,因为它不能索引你的列。

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

你应该用这个代替:

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

谢谢!!!!我刚到公司,我还没有尝试过,但你的时尚非常有创意,我从来没有想过这样,我想过很多东西,名单等等。我会尽快尝试你的时尚。再次感谢你。 –

+0

让我给你一个吻。 –

+0

你为什么不吻我回来? –