【发布时间】:2014-10-21 14:31:05
【问题描述】:
数据库中有 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; }
}
}
【问题讨论】:
-
您能否显示填充该实体字段的代码?我想我知道出了什么问题,但在我看到那个代码之前我不能确定。
-
@IronMan84 是的,先生。更新。请立即查看。
-
Pages 类在哪里?
-
你的意思是当你添加一个
PageGroup时,它也添加了一个Project?即使Project已经存在,还是您根本不想要Project? -
我不是指实体代码类(尽管这些也很有帮助!)。我的意思是在调用
Add方法之前将数据放入该实体的位置。
标签: c# entity-framework entity-framework-4