- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将新的父项目和新的子项目保存到遗留数据库
我的数据很好,当我保存它时,它同时保存了父项和子项。但是 child 的 SillyNameParentId 始终为 0
我无法更改表结构,所以我必须弄清楚如何让它工作。
这里是生成的SQL
NHibernate: INSERT INTO SillyNameParent(Description, Active) VALUES (@p0, @p1); select SCOPE_IDENTITY();@p0 = 'Test' [Type: String (1073741823)], @p1 = True [Type: Boolean (0)] NHibernate: INSERT INTO SillyChild (SillyNameCategoryId, sillyNameParentid) VALUES (@p0, @p1); select SCOPE_IDENTITY();@p0 = 0 [Type: Int32 (0)], @p1 = 1 [Type: Int32 (0)]
最终我希望将@p1 设置为 SillyNameParentId/Parentid
表格:
SillyNameParent
Column PK-IsIdentity: ParentId
Column varchar(255): Description
Column bit: Active
SillyChild //I'm a lookup table
Column int IsIdentity: Id
Column int PK: SillyNameParentId
Column int PK: SillyNameCategoryID
模型:
public class SillyNameParent: Entity
{
public SillyNameParent()
{
Children= new List<SillyChild>();
}
public virtual string AreaOfConcernDesc { get; set; }
public virtual bool Active { get; set; }
public virtual IList<SillyChild> Children{ get; set; }
}
public class SillyChild: Entity
{
public virtual int SillyNameParentId { get; set; }
public virtual int SillyNameCategoryId{ get; set; }
public virtual SillyNameParent Parent { get; set; }
}
map :
public class SillyNameParentMap : IAutoMappingOverride<SillyNameParent>
{
public void Override(AutoMapping<SillyNameParent> mapping)
{
mapping.Table("SillyNameParent");
mapping.Id(x => x.Id).Column("ParentId").GeneratedBy.Identity();
mapping.Map(x => x.Description).Not.Nullable();
mapping.Map(x => x.Active).Nullable();
mapping.HasMany(x => x.children)
.Cascade.All()
.KeyColumn("SillyNameParentId")
.Not
.LazyLoad();
}
}
public class SillyChildMap: IAutoMappingOverride<SillyChild>
{
public void Override(AutoMapping<SillyChild> mapping)
{
mapping.Table("SillyChild");
mapping.Id(x => x.Id).Column("Id").GeneratedBy.Identity();
mapping.Map(x => x.SillyNameParentId).Not.Nullable();
mapping.Map(x => x.SillyNameCategoryId).Not.Nullable();
mapping.HasOne(x => x.Parent).ForeignKey("SillyNameParentId");
}
}
最佳答案
我会说,你快到了。只是映射父/子应该是这样的:
SillyNameParentMap:
public void Override(AutoMapping<SillyNameParent> mapping)
{
...
mapping.HasMany(x => x.Children)
.Cascade.All()
.KeyColumn("SillyNameParentId")
.Inverse() // this is the way how to manage insertions
.Not
.LazyLoad();
傻 child map :
public void Override(AutoMapping<SillyChild> mapping)
{
...
mapping.References(x => x.Parent)
.Column("SillyNameParentId");
这个映射最终会正确插入,就像这样:
var parent = new SillyNameParent();
parent... // set properties
var child = new SillyChild();
child... // set properties
parent.Children.Add(child); // parent knows about child
child.Parent = parent; // always do set the relation both ways
sillyService.SaveSillyParent(snp)
编辑:选择 2 期
异常说明的是双列映射。在 INSERT 或 UPDATE 的情况下这是一个问题。但是使用 NHibernate 我们可以很容易地解决它:
mapping.Map(x => x.SillyNameParentId)
.Not.Nullable()
.Not.Insert()
.Not.Update();
mapping.References(x => x.Parent)
.Column("SillyNameParentId");
所以,现在我们已经映射了两个属性(引用 Parent 及其 int 表示)。只有引用将用于 INSERT、UPDATE。但是两者都可以用于选择、筛选/位置和排序...
关于c# - Fluent Nhibernate 保存 child.parentid = parentId on new parent & Child,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20575891/
我正在尝试将新的父项目和新的子项目保存到遗留数据库 我的数据很好,当我保存它时,它同时保存了父项和子项。但是 child 的 SillyNameParentId 始终为 0 我无法更改表结构,所以我必
如何在同一张表上设置父子关系? Id int, title string, ParentId int ---> this is refer to Id 最佳答案 您使用的是什么 ActiveReco
我有以下结构: MyClass { guid ID guid ParentID string Name } 我想创建一个数组,其中包含按照元素应在层次结构中显示的顺序排列的元素(例如,根据
MyClass由 ID 组成ParentID和 List作为Children 我有 MyClass 的列表像这样 ID ParentID 1 0 2 7 3 1 4 5 5 1
我需要一些帮助来构建一个查询,以便我过滤以下数据。 Table: MyTree Id ParentId Visible ===================== 1 null 0
我有一张这样的 table foo(id, parentId) -- there is a FK constraint from parentId to id 我需要删除一个项目及其所有 child
我有一个看似简单的任务,但我遇到的麻烦远比我愿意承认的要多。我有一个层次表,我需要查询和显示由父级和相关子级分组的结果。 我当前的 LINQ 查询: var quests = Questions.In
我有一个看似简单的任务,但我遇到的麻烦远比我愿意承认的要多。我有一个层次表,我需要查询和显示由父级和相关子级分组的结果。 我当前的 LINQ 查询: var quests = Questions.In
网站核心 reference谈谈你可以在Query中使用的一些属性,包括@@templatename、@@id和@@parentid等。 parentid 似乎不起作用 - /sitecore/con
我有以下两个数据库表: 新闻表: newsID, topic, categoryID 类别表: categoryID, title, parentID 我想获取 newsID、主题、主类别的标题,如果
//Set Parent ID for the rest of the Reports data sources this.ReportDataSources.ToList().ForEach(rds
每个父元素都应包含所有子类别的总数。如果解决方案将使用仅 Array 对象方法而不使用 while 循环,那将是非常好的。 这是基础结构的例子: const base = [ { id: 1, c
我会尽量解释清楚。这是我的查询.. SELECT * FROM mm_star_ratings s JOIN mm_posts p ON s.post_id = p.postid WHERE p.ty
我有一个类似 records(ID, ParentID) 的表,其中包含以下数据: ID ParentID 1 null 2 1 3 2 4 2 5 3
我有两个数组。两者都包含具有唯一 id 和 parentid 值的对象(给定的 id 只是示例,实际上它们是由 uuid 生成器生成的)。第一个是按照 parentid 不同于“parent”的对象位
这是表的示例结构: ID Name ParentID ----------------------- 1 Ancestor NULL 2 GrandFather
我有一个具有多层嵌套的层次结构树 JSON。当我尝试循环 JSON 以在 UI 中显示树结构时。我最终得到了循环冗余,因为父 ID 在不同级别上是相同的。我需要为parentID和ID添加唯一标识符,
给定一个平面级别的对象数组,根据 parent 和 id 属性嵌套它们的最有效和现代的方法是什么?顶层对象没有parentId,嵌套层数没有限制。 [{ id: 'OS:MacOS', typ
给定一个平面级别的对象数组,根据 parent 和 id 属性嵌套它们的最有效和现代的方法是什么?顶层对象没有parentId,嵌套层数没有限制。 [{ id: 'OS:MacOS', typ
我正在为我的应用程序编写一个 CMIS 接口(interface)。此接口(interface)返回 cmis:document作为 cmis:folder 的子对象的对象目的。这里是 a part
我是一名优秀的程序员,十分优秀!