所以,我有两个表,称它们为User和Item。我希望每个用户都能够标记任何项目(例如在Google Universe中“凝视”的内容)。现在存储一个简单的关系,没有明确的ID
,从集合论的角度来看,它应该是合理的存储这个用户和项目之间的简单关系。调用这个新的表UserItemFlags。该表应该有两列;一个是用户表的外键,另一个是外键到Item表。如果用户U标记项目I,则表示该项目在UserItemFlags表中存在行(U, I)
。现在
,我用流利,NHibernate的表达这个问题是这样的:我似乎无法理解与Id
映射做。理想情况下,我不会有身份证,因为没有比在用户和物品之间存在或不存在这种关系更多的东西了。这种模式的一个自然结果是,表中不可能有重复的行。这是一个理想的功能。
using FluentNHibernate.Mapping;
public class UserItemFlagsMapping : ClassMap<UserItemFlags>
{
public UserItemFlagsMapping()
{
// Aaaa! I must have an Id!
References(x => x.User).Not.Nullable();
References(x => x.Item).Not.Nullable();
}
}
我很乐意为正确的方向指出任何指针,即使他们会要求我放弃这个特定情况下的Fluent。
是的,我同意。但是流利,NHibernate的不同意。我需要调用`Id`法上`类映射<...>`的良好理解。 – 2011-01-21 09:27:46