- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个类(例如简化):
public class Data
{
public int Id {get; set;}
public string Value { get; set; }
}
public class DataContainer
{
public int Id {get; set;}
public IList<Data> DataPoints { get; set; }
}
基本上,DataContainer 类有一组数据(和其他未显示的属性)。 Data 类不知道 DataContainer,但它不能存在于一个之外。我为此使用了 HasMany 关系。
我像这样映射 DataContainer:
Id(x => x.Id);
HasMany<Data>(x => x.DataPoints)
.Not.KeyNullable()
.Cascade.All();
为数据生成的 SQL 如下所示:
create table [Data] (
[Id] INT IDENTITY NOT NULL,
[DataContainer] INT null,
primary key ([Id])
)
alter table [Data]
add constraint FK173EC9226585807B
foreign key ([DataContainer])
references [DataContainer]
问题是我不希望[DataContainer] INT null,而是我希望它不允许空值
[DataContainer] INT not null
我以为 .Not.KeyNullable() 会这样做,但它似乎不起作用。
谢谢。
最佳答案
我有完全相同的映射和相同的结果,但查看由 Fluent 生成的 hbm.xml,它看起来像它在这里能做的。集合映射看起来像这样(注意“key”元素上的“not-null”属性):
<bag cascade="all" name="Items" mutable="true">
<key foreign-key="FK_MyEntity2_MyEntity1" not-null="true">
<column name="MyEntity1_Id" />
</key>
<one-to-many class="MyNs.MyEntity2, MyAssembly, Version=0.4.700.0, Culture=neutral, PublicKeyToken=null" />
</bag>
因此我认为这是一个 NHibernate 问题而不是一个 Fluent 问题。以下摘自最新的 NHibernate 引用(3.0.0,但我很确定 2.1.2 也是如此)的第 6.4 章
Very Important Note: If the <key> column of a association is declared NOT NULL, NHibernate may cause constraint violations when it creates or updates the association. To prevent this problem, you must use a bidirectional association with the many valued end (the set or bag) marked as inverse="true". See the discussion of bidirectional associations later in this chapter.
所以我的猜测是 NHibernate 在为此映射生成 DDL 时简单地忽略了“not-null”属性,并且解决方案是按照上面的建议使关联双向(绝对有效但可能不适合您的场景)或实时带有 NULL 列。
关于fluent-nhibernate - HasMany 非空外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4283022/
是否可以在一个集合/json 中获取所有详细信息(用户、帖子、postimages)? 用户->hasmany(帖子) 后->hasmany(后图像) 用户: 身份证 |姓名 邮政: 身份证 |用户
我正在制作一个具有基本消息传递功能的 PHP/MySQL Web 应用程序。两个用户将能够进行包含一系列消息的“对话”。 以下是我设想的模型关系: 用户> 多对多> 对话 对话> 多对多> 用户和一对
我的问题很简单: 我有一个名为users 的表。这些用户可以有很多联系人。这些联系人是其他用户。 所以我有一个名为 userHasContacts 的表,其中包含所有者的 ID (userID) 和联
我有两个 GORM 域类。一个是卡,卡上有很多购买。有什么方法可以搜索大于或等于某些购买的卡。这可能是一个例子 我们有4张牌: Card1:橙、橙、苹果 Card2:苹果、橙子 Card3:橙色,橙色
背景: 我有三个表,即生产、生产线和操作。 生产线引用其先前的生产线,列名为“parent_id”。生产线的深度应等于操作的深度。 以下是他们的关系: Production_lines has man
我有两个表(项目、任务)。 项目表结构如下: id - title - desc - others_column 1 - title - desc - others 2 - title - des
提前感谢您的帮助。 我有两个模型菜单和窗口及其关联 db.menus.hasMany(db.windows); db.windows.belongsTo(db.windows); 我正在尝试使用与此类
使用hasMany有区别吗 static hasMany = [objects:Object] 并添加对象的集合 Set objects 最佳答案 使用之间绝对有区别: static hasMany
我有这四个类: class Animal { static hasMany = [legs: Leg] } class Cat extends Animal { static hasM
当我尝试创建与其父模型关联的子模型时遇到问题。 我有 2 个模型: 机构(有很多地址) 地址(有 1 个机构) 当我单击一个机构并转到 show.blade.php 时,我有一个表单可以为该机构创建地
我正在运行 cakephp 2.0.2,我有以下关系 Category hasMany CategoryWork Work hasMany CategoryWork Categ
是否有一个简单的解决方案可以通过模型上的 hasMany Relation 分离(不删除)所有相关模型? 例如,我有两个表: 学院(ID、名称) 学生(id、姓名、college_id(可为空)) 在
Ember Data 是否类似于 Rails 的 has_many ..., :through =>功能? 最佳答案 它不是。在 1.0 Beta 中添加了一个 Unresolved 问题。里程碑:M
我有用户表,然后是他们的兴趣表。 最好是通过表来管理 hasMany 来管理两者之间的关系,还是最好将 CSV 写入“用户”表中的一列。 到目前为止,我一直在通过表格使用 hasMany,但想知道最好
假设我有两个模型:Park 和 Items。通过 HasMany 关系,每个 Park 都可以有多个 Items。 在 Items 表中有一个 park_id 字段和一个 type 标志:一个 Ite
这是save和 saveMany HasMany 上的方法关系类,但 dissociate(Many) 在哪里?/detach(Many)方法?也没有获得逆关系方法的内置方法,那么从 HasMany
我试图让我在 CakePHP 2.3 中的关联模型正确保存,但我遇到了问题。我正在存储帖子,我想知道这些帖子中有哪些链接。对于这些链接中的每一个,如果可用,我想存储 anchor 文本。我的数据库设置
我有两个类(例如简化): public class Data { public int Id {get; set;} public string Value { get; set; }
有域对象: class Book { List pictures static hasMany = [pictures:Picture] static mappi
我正在尝试实现 HasMany与不可为空的键列的映射。 我的映射如下所示: public void Override(AutoMapping mapping) { mapping.Table(
我是一名优秀的程序员,十分优秀!