ske*_*ske 3 c# entity-framework entity-framework-4
数据库中有 2 张表,一张是 [PARENTS],另一张是 [CHILDREN] - 有 ParentId 作为外键。
所以父母和孩子之间的关系是一对多的。
问题是当我尝试创建一个新的 CHILDREN 记录时,它也会创建一个新的 PARENT 记录。
怎么解决呢?谢谢

public void Add(Model.Pages.PageGroup entity)
{
using (var ctx = new SmartDbContext())
{
var dbEntity = entity.ToEntity();
ctx.PageGroups.Add(dbEntity);
ctx.SaveChanges();
}
}
namespace SmartECM.Repository.EF
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
public partial class PageGroup
{
public PageGroup()
{
Pages = new HashSet<Page>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid GroupId { get; set; }
[Required]
[StringLength(100)]
public string GroupName { get; set; }
public Guid ProjectId { get; set; }
[DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Computed)]
public DateTime? DateAdded { get; set; }
[DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Computed)]
public DateTime? DateUpdated { get; set; }
public virtual Project Project { get; set; }
public virtual ICollection<Page> Pages { get; set; }
}
}
namespace SmartECM.Repository.EF
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
public partial class Project
{
public Project()
{
PageGroups = new HashSet<PageGroup>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ProjectId { get; set; }
[Required]
[StringLength(100)]
public string ProjectName { get; set; }
public string ProjectDescription { get; set; }
public Guid? Owner { get; set; }
[DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Computed)]
public DateTime? DateAdded { get; set; }
[DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Computed)]
public DateTime? DateUpdated { get; set; }
public virtual ICollection<PageGroup> PageGroups { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
感谢大家!!!
我从此链接Entity Framework - Duplicate Parent(one) when create new child(many)得到了正确的答案
我猜它应该附加父级以便 EF 可以检测到它。

| 归档时间: |
|
| 查看次数: |
1444 次 |
| 最近记录: |