Entity framework 避免添加重复项
我正在学习EF。我有如下代码 我添加了键注释,因为当我添加符号时,它应该添加一次,不能再添加了。因此,如果加上欧元/美元,我不想要不同的欧元/美元。但是,在这个程序的不同运行中,当我运行代码时,它会抱怨密钥已经存在。如果上下文不在数据库中,如何创建上下文;如果上下文已经存在,如何获取对它的引用Entity framework 避免添加重复项,entity-framework,ef-code-first,Entity Framework,Ef Code First,我正在学习EF。我有如下代码 我添加了键注释,因为当我添加符号时,它应该添加一次,不能再添加了。因此,如果加上欧元/美元,我不想要不同的欧元/美元。但是,在这个程序的不同运行中,当我运行代码时,它会抱怨密钥已经存在。如果上下文不在数据库中,如何创建上下文;如果上下文已经存在,如何获取对它的引用 using (var db = new TickDataTestContext()) { var td = new SymbolTickDataE
using (var db = new TickDataTestContext())
{
var td = new SymbolTickDataEntity { Symbol = symbol };
db.SymbolTickData.Add(td);
db.SaveChanges();
while (true)
{
etc....
public class SymbolTickDataEntity
{
public int SymbolTickDataEntityID { get; set; }
[Key]
[Required]
public string Symbol { get; set; }
public virtual IList<MarketDataDepthEntity> Mdds { get; set; }
public SymbolTickDataEntity() { Mdds = new List<MarketDataDepthEntity>(); }
}
public class TickDataTestContext : DbContext
{
public DbSet<MarketDataEntity> MarketData { get; set; }
public DbSet<MarketDataDepthEntity> MarketDataDepth { get; set; }
public DbSet<SymbolTickDataEntity> SymbolTickData { get; set; }
}
使用(var db=new TickDataTestContext())
{
var td=新的SymbolTickDataEntity{Symbol=Symbol};
db.SymbolTickData.Add(td);
db.SaveChanges();
while(true)
{
等
公共类SymbolTickDataEntity
{
public int SymbolTickDataEntityID{get;set;}
[关键]
[必需]
公共字符串符号{get;set;}
公共虚拟IList MDD{get;set;}
public SymbolTickDataEntity(){Mdds=new List();}
}
公共类TickDataTestContext:DbContext
{
公共DbSet MarketData{get;set;}
公共数据库集MarketDataDepth{get;set;}
公共DbSet SymbolTickData{get;set;}
}
您可以在插入SymbolTickData之前检查SymbolTickData是否存在
if(!db.SymbolTickData.Any(a => a.Symbol.Equals(symbol)))
{
db.SymbolTickData.Add(td);
db.SaveChanges();
}