我对我的问题进行了一些搜索,但找不到任何真正有帮助的东西。
所以我的问题/困境仍然是这样的:
我知道 mysql 数据库有一个独特的索引系统,可用于使用以下格式在同一查询中插入/更新:insert into t(a,b,c) values(1,1,1) on duplicate keys update b=values(b),c=values(c);
以及用于通过该索引替换现有记录的替换格式。
老实说,我在 MSSQL 中看到的唯一类似的东西是merge
但我真的一点也不喜欢它,并且验证插入或更新的查询毕竟不是基于唯一索引的......
那么如何将 mysql 独特的 UPSERT 模拟到实体框架中呢?这是我的主要问题...
我的意思是没有从实体集中获取记录并检查它是否为空以进行可能的插入或更新;
我能得到它吗?或不?任何提示都可能有用
I saw this http://msdn.microsoft.com/en-us/library/hh846520(v=vs.103).aspx但没有出现在版本6中...
实体示例:
[Table("boats")]
public class Boat
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
[MaxLength(15)]
[Index("IX_ProviderBoat",1,IsUnique=true)]
public string provider_code { get; set; }
public string name { get; set; }
[Index("IX_ProviderBoat", 3, IsUnique = true)]
[MaxLength(50)]
public string model { get; set; }
[Index("IX_ProviderBoat", 2, IsUnique = true)]
[MaxLength(15)]
[Key]
public string boat_code { get; set; }
public string type { get; set; }
public int built { get; set; }
public int length { get; set; }
}
所以我想使用 EF 根据我的 IX_ProviderBoat 唯一索引进行更新/插入