過去に誰かが解決策を見つけた疑いがあります。 AddOrUpdateメソッドを使用して、EF5移行のConfigurationクラスにデータベースをシードします。ここでEF5 Migrations Seed AddOrUpdate(ヌル選択可能条件付き)
は、ドメインモデルの簡単な例です:ここに続いて
public class Club
{
public virtual long Id { get; set; }
public virtual string Name { get; set; }
}
public class Court
{
public virtual long Id { get; set; }
public virtual string Name { get; set; }
public virtual long? ClubId { get; set; }
public virtual Club Club { get; set; }
}
は私の種子法からの抜粋です:今
Club cb = new Club { Name = "Test Club 1" };
context.Set<Club>().AddOrUpdate(m=>m.Name, cb);
context.SaveChanges();
Court crt1 = new Court { ClubId = cb.Id, Name = "Court 1" };
Court crt2 = new Court { ClubId = cb.Id, Name = "Court 2" };
context.Set<Court>().AddOrUpdate(m => new { m.Name, m.ClubId }, crt1, crt2);
context.SaveChanges();
、コード行番号7に達すると、それはスローエラー:
The binary operator Equal is not defined for the types 'System.Nullable`1[System.Int64]' and 'System.Int64'.
私の調査によると、ClubIdはNullable型であるためです。
これを回避する手段はありますか?
ない大きな問題 - 私は非常にを持っていない私は完璧主義だし、他の人がこれを解決したかもしれないかを確認したいと思います...
おかげで、 ニックGoloborodko
明確にするために、クラスにはもっと多くのプロパティがありますが、わかりやすくするために省略しました。 –
私も同様の問題がありました。回避策として、私は別のパラメータに切り替えました。この場合、私はm.ClubIdをまったく使用しません。m.Name – jyrkim