小编Mar*_*tin的帖子

父对象在EntityState.Unchanged中,但它仍然插入到数据库中

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

我跟着这个:

使用现有对象插入新对象
阻止实体框架为导航属性插入值

有趣的是,即使父实体的EntityState是"Unchanged",实体框架仍会尝试插入它.


架构

在此输入图像描述


CarRepository.Save()方法

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)

c# entity-relationship entity-framework

13
推荐指数
1
解决办法
2490
查看次数

通过实体框架获取SQL视图会返回不​​正确的结果

我在SQL Server中有一个非常简单的视图,它看起来像这样,其中ShowLEFT JOINCharacter表的结果:

+---------+----------+----------------------+  
|  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)

c# sql entity-framework

5
推荐指数
2
解决办法
2872
查看次数

标签 统计

c# ×2

entity-framework ×2

entity-relationship ×1

sql ×1