Sql 其中一个ID组件不';不要总是更新
Im使用实体框架6 鉴于以下模型:Sql 其中一个ID组件不';不要总是更新,sql,sql-server,entity-framework,Sql,Sql Server,Entity Framework,Im使用实体框架6 鉴于以下模型: MyType (Id+Language are keys) - Id - Language // will be represented by values like "en", "no", "dk", "de" - Label MyValue (Id+SomeOtherEntityId+Language are keys) - Id - SomeOtherEntityId - Language - Value 我希望MyTypes中的Id列在为该Id提供
MyType (Id+Language are keys)
- Id
- Language // will be represented by values like "en", "no", "dk", "de"
- Label
MyValue (Id+SomeOtherEntityId+Language are keys)
- Id
- SomeOtherEntityId
- Language
- Value
我希望MyTypes
中的Id
列在为该Id提供新语言时自动递增(如果有意义的话)
例如:
context.MyTypes.Add(new MyType { Label = "Label", Language = "no" });
context.MyTypes.Add(new MyType { Label = "Label", Language = "da" });
context.MyTypes.Add(new MyType { Label = "Label", Language = "nl" });
这为我提供了一个如下所示的数据库:
| Id | Language | Label |
|----|----------|-------|
| 1 | no | Label |
| 2 | da | Label |
| 3 | nl | Label |
而我真正想要的是:
| Id | Language | Label |
|----|----------|--------|
| 1 | no | Label |
| 1 | da | Label |
| 1 | nl | Label |
| 2 | no | Label2 |
| 2 | da | Label2 |
| 2 | nl | Label2 |
目前,我已将ID列设置为标识,从而使其自动递增
关于这类问题有什么最佳做法吗?据我所知,你试图做的事情是做不到的。(标识是一行一个不同的值) 我觉得有两张桌子是对的: 桌面(Id、代码、Blabla) 或 然后通过代码值和语言值进行翻译,得到可读的代码
tableTrans(Id, ExtId, Language, Value), with ExtId as a FK
tableTrans(ExtId, Language, Value) with a composite Key comprisong the FK