0
我喜欢在数据库中存储一个集合,其中包含一组可用的“轮子”。汽车级别参考这些车轮。EntityFramework:数据库设计m到1的关系
public class Car
{
private ICollection<Wheel> _wheels;
public ICollection<Wheel> Wheels
{
get { return _wheels; }
set { _wheels = value; }
}
}
public class Wheel
{
public enum position
{
FrontRight,
FrontLeft,
BackRight,
BackLeft,
}
[Key]
public int ID { get; set; }
}
如果我使用实体框架的外键将被存储在车轮数据库表。这不是预期的结果,因为我有多个Cars和foreach车,Wheels中的新条目将以相同的内容创建。 (存储空间的浪费)
Wheels
-------
<PK>ID:Integer
<FK>Car_ID:Integer
Cars
-----
<PK>ID:Integer
所以我强迫第三个表的创建为汽车轮关系试过另一种解决方案。所以这些ID将被存储在相应的Car_Wheel表中。
我向Wheel-class添加了一个属性,用于聚焦许多关系。
public virtual ICollection<MonitoringTask> RelatedCars { get; set; }
愿望创建该表方案:
Wheels
-------
<PK>ID:Integer
Cars
-----
<PK>ID:Integer
Car_Wheel
-------
<PK><FK> ID_Car:Integer
<PK><FK> ID_Wheel:Integer
??? 所以这看起来不错,但我正在寻找一个不需要更改Wheel级别的解决方案。 ???
我想'MonitoringTask'的例子应该是'Car'。你在谈论“多对多”的关系。你是问如何在'Wheel'侧设置许多一对多的关系,而不导航属性? –