作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Fluent NHibernate 从 .Net 实体类生成数据库模式。我有两个具有多对多关系的类 User
和 Permission
,并且 Fluent NHibernate 在数据库中正确生成了一个连接表 UsersToPermissions
。
正如预期的那样,联结表存储了主键 UserId
和 PermissionId
。我想要的是也有附加到此表的审核信息,例如 CreatedDate
和 UpdatedDate
。我已经按照 NHibernate documentation 中所述使用拦截器在非联结表上实现了这一点.
如何在 UsersToPermissions
表上实现审计列?
最佳答案
直接不可能,因为关系没有属性。
最简单的方法是将联结表映射为一个实体,并使用 LINQ-to-objects 投影边以方便使用。
例如,假设我们调用中间实体UserPermission
:
class User
{
// Real relationship, mapped as bag or set with one-to-many UserPermission
protected virtual ICollection<UserPermission> UserPermissions { get; set; }
public virtual IEnumerable<Permission> Permissions
{
get { return from up in UserPermissions select up.Permission; }
}
public void Add(Permission permission)
{
UserPermissions.Add(new UserPermission
{
User = this,
Permission = permission
});
}
}
如果需要,权限可以完全相同。
关于.net - 将审计列添加到 Fluent NHibernate 多对多联结表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4011801/
我需要创建一个从 C:\x 到 C:\xxx\yyy\zzz\aaa\bbb 的连接点(目录符号链接(symbolic link)),因为在将文件添加到这个目录,我无法控制目录结构。 我读到创建连接点
我是一名优秀的程序员,十分优秀!