我有这个实体(无论是在数据库和Entity Framework)的唯一编号/值:产生一列不具有UNIQUE约束
public class LanguageValue
{
public int ID { get; set; }
public long Key { get; set; } // bigint in database
public int LanguageID { get; set; } // FK with a Language table in database
public string Value { get; set; } // nvarchar(MAX) in database
public bool Active { get; set; } // bit in database
}
我已经看过这篇文章,但我的问题是有点不同:EF6: How to generate a unique number automatically based on entity Id
我的Key
列没有唯一的约束,因为可以有多个具有相同Key
值的行。例如:
ID Key LanguageID Value
---------------------------------------------------
1 1 1 Name in Language 1
2 1 2 Name in Language 2
我不能使用映射表来执行,而不是一个Key
FK因为多个表使用同一表格(产品的名称,类别名称,文章的内容)。
现在无论何时我需要插入Product
或Category
记录,我都需要插入相应的语言值。但是,我还没有找到一种方法来生成其中独一无二的密钥,并且,如果两次插入同时进行处理(例如,同时添加产品和类别),则需要更加独特, 。
我正在考虑Guid
,这应该是我与RNG的安全赌注,还是有更好的方法来实现它?
ID是您的独特识别码。这与您想要做的有什么不同? – JamieD77
对于每个插入操作符,我需要插入2行(或更多取决于多少种语言),使用相同的'Key',但除了这2行外,其他行都不会有'Key'值。所以它不是ID。 –
我想在一个事务中插入所有'Product'及其2个'LanguageValue'记录,所以在EntityFramework中,我还没有该ID。 –