2016-09-19 128 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

你爲什麼不吻我回來? –