我有一个简单的雪花模式,我生成了我的实体框架模型.
问题是我正在尝试将子实体映射到现有父实体和/或祖父实体,但它仍然插入它.
我跟着这个:
有趣的是,即使父实体的EntityState是"Unchanged",实体框架仍会尝试插入它.

public void Save(Car car)
{
using (DBContext context = new DBContext())
{
// No need to save if it already exists
if ( context.Cars.FirstOrDefault(x => x.RegistrationNumber == car.RegistrationNumber) != null)
{
return;
}
else
{
// Check if the parent POCOs exist in the DB.
Model existingModel = context.Models.FirstOrDefault(x => x.Name == car.Model.Name);
Manufacturer existingManufacturer = context.Manufacturers.FirstOrDefault(x=> x.Name == car.Model.Manufacturer.Name)
Trader existingTrader = context.Traders.FirstOrDefault(x=> x.Name == car.Trader.Name)
TraderCompany …Run Code Online (Sandbox Code Playgroud) 我在SQL Server中有一个非常简单的视图,它看起来像这样,其中Show是LEFT JOIN和Character表的结果:
+---------+----------+----------------------+
| Name | Surname | Show |
+---------+----------+----------------------+
| Enoch | Thompson | The Boardwalk Empire |
| Anthony | Soprano | The Sopranos |
| Walter | White | Breaking Bad |
+---------+----------+----------------------+
Run Code Online (Sandbox Code Playgroud)
当我通过context.CharacterView.ToList()我的应用程序中的Entity Framework获取此表时,结果如下所示:
+---------+----------+----------------------+
| Name | Surname | Show |
+---------+----------+----------------------+
| Enoch | Thompson | The Boardwalk Empire |
| Anthony | Soprano | The Boardwalk Empire |
| Walter | White | …Run Code Online (Sandbox Code Playgroud)