使用 FluentNHibernate 映射通用 EntityBase

2024-01-16

我的所有实体类型都有一个基类,就像

public abstract class EntityBase<TEntityType> : IEntityBase where TEntityType : EntityBase<TEntityType>
    {
        private List<IBusinessRule> _brokenRules = new List<IBusinessRule>();

        private int? _hashCode;

        public int ID { private set; get; }

在我的映射中,我想使用每类表策略,但如何映射此 EntityBase 类?我尝试了 public class EntityBaseMap:ClassMap 但它不起作用。 那么我如何映射这个类呢?我想要这样做的原因是我不想写重复的东西Id(c=c.ID).Not.Null ....等等,但将其放在一个映射类中。

我的映射类看起来像这样

public class EntityBaseMap : ClassMap<EntityBase<???>>

我应该插入什么而不是???

Thanks


您仍然可以通过反射来简化过程,方法是创建通用映射,然后使用运行时类型,而不是创建静态类型:

    private static void AddWeakReferenceMappings(FluentMappingsContainer container, Assembly assembly)
    {
        var genericMappingType = typeof (WeakReferenceMap<>);
        var entityTypes = assembly.GetTypes().Where(type => type.IsSubclassOf(typeof (Entity)));
        foreach (var enitityType in entityTypes)
        {
            var newType = genericMappingType.MakeGenericType(enitityType);
            container.Add(newType);
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 FluentNHibernate 映射通用 EntityBase 类 的相关文章

  • 将 nHibernate 3.x 与 Jet 驱动程序结合使用 (Microsoft Access)

    我正在开发一个 nHibernate 项目 该项目使用 Access 数据库作为数据源 不幸的是 我在运行时遇到问题 因为我找不到支持 nHibernate 3 x 的 Jet 驱动程序 我已经从 trunk 下载了源代码并编译了它 但事实
  • 您会将什么放入存储库类(数据访问层)的单元测试中?

    我想为我的数据访问层编写一个单元测试 以确保其中的一切正常工作 问题是 我应该把什么样的东西放入测试中 DAL 是静态的Repository隐藏底层 Fluent NHibernate 并通过一个公开的东西向公众公开的类IQueryable
  • Fluent NHibernate 一对一映射

    我很难利用 Fluent NHibernate 的 HasOne 映射 基本上 A 类在 B 类中可以有匹配的 只有一条或没有 记录 请帮助定义关系的 AMap 和 BMap 类 谢谢 public class A public virtu
  • 如何在 NHibernate 中自动生成 ID

    如何让 NHibernate 自动生成表的唯一 ID ID 可以是任意的long值 只要每个值仅使用一次 我当前的映射如下所示
  • NHibernate 忽略长度属性

    运行 SQL Profiler 后 我意识到 NHibernate 正在将字符串映射到nvarchar 4000 我通过指定修复了它type AnsiString and length 在 hbm 文件中 现在正在生成varchar 800
  • 使用 SQLite 测试 NHibernate“没有这样的表” - 生成模式

    我正在尝试使用内存中的 SQLite 数据库来测试 NHibernate 提供的数据层 我读过很多关于如何进行此设置的博客和文章 但我现在很困惑为什么它不起作用 问题 当我运行单元测试时 我收到错误 没有这样的表 学生 我读过的文章表明这
  • 如何保持长时间运行的NHibernate Session数据一致?

    我在 ASP NET 会话中缓存了 NHibernate 会话 我遇到过一种情况 用户编辑了一个对象 因此它位于 ISession 的第一级缓存中 然后另一个用户编辑了同一个对象 此时 用户 1 仍然可以看到其编辑的原始版本 而用户 2 可
  • NHibernate Projections - 如何投影集合

    有一个场景 我只需要从实体中选择单个 几列 但在查询中选择多个子项 我一直在尝试投影 但在集合属性上出现错误 这是很正常的情况 但找不到有关投影集合的信息 仅属性 Customer customerAlias null Order orde
  • 非法尝试将集合与两个开放会话关联 流畅的 nhibernate

    我有这个异常 非法尝试将集合与两个打开的会话关联 每次我保存包含子集合的实体时都会引发该异常 我用谷歌搜索一下 我发现在调用保存时我打开了两个或多个会话 但我确定我只使用了一个会话 我哪里做错了 我该如何解决这个问题 注意 我使用的是 MV
  • NHibernate 具有多个数据库和事务

    我们在理解如何最好地使用 NHibernate 时遇到了一些问题 我们通常拥有相对大量 就表数量而言 的 SQL Server 数据库 而不是一个包含大量对象的数据库 我们正在研究处理多个会话工厂的各种选项 并且可能已经控制住了这一点 但是
  • 从实体获取单列

    如何从查询中获取单个列而不是整个对象 我可以这样做来获取整个对象 但我想要的只是名称 IList
  • Lightspeed 与 NHibernate

    有什么体验光速 http www mindscape co nz products LightSpeed comparison aspx Mindscape 提供的比较并没有过多说明 NHibernate Lightspeed 看起来很灵活
  • NHibernate - 无法执行查询 - 输入字符串的格式不正确

    我已经为此摸不着头脑有一段时间了 我不知道出了什么问题 概述 我的 MySQL 数据库中有两个表 两者都正确映射到数据库 我可以加载数据 并且我能够查询一个表 但不能查询另一个表 我研究过的解决方案 表和 C 代码之间的类型转换问题 映射问
  • nHibernate 3 - Left Join re-Linq 解决方案

    我正在尝试使用 nHibernate 3 运行下面的 Linq 查询 var items from c in session Query
  • nhibernate:读写字符串列表

    我知道我可以使用 nhibernate 读取写入字符串列表 如下所示 HasMany x gt x Attachments KeyColumn RowId Table PostTable Element PostKey 但这会创建一个额外的
  • NHibernate 克服 NotSupportedException

    有谁知道有什么方法可以克服 NotSupportedException 我有一个针对用户的方法 public virtual bool IsAbove User otherUser return HeirarchyString Starts
  • 在 MVC 应用程序中配置 NHibernate 二级缓存

    我有一个使用 NHibernate 的 MVC3 应用程序 一切都很顺利 直到我开始尝试添加二级缓存 浏览网页几个小时后 我终于找到了我认为正确的 dll NHibernate Caches SysCache2 dll 并将其添加到我的项目
  • 对 id 属性使用自定义类型

    我有以下课程 public class UserId public UserId int id some validation public override string ToString public class User public
  • NHibernate Hi/Lo - id 中的间隙

    场景 Hi Lo 初始化为MyEntity与 Lo 100 桌子是空的 具有不同连接的两个会话都插入了三个项目 TableIds 1 2 3 100 101 102 如果稍后有第三个进来并插入三项 TableIds 200 201 202
  • NHibernate:级联保存到子级不会插入

    我有一个像这样的双向关联 public class Parent public int ParentId get set other properties public IEnumerable

随机推荐

  • 如何标准化 Wordnet 中的相似性度量

    我正在尝试计算两个单词之间的语义相似度 我正在使用基于 Wordnet 的相似性度量 即 Resnik 度量 RES Lin 度量 LIN Jiang 和 Conrath 度量 JNC 以及 Banerjee 和 Pederson 度量 B
  • Laravel hasMany 与 where 处于多态关系

    我有 3 张桌子 汽车 公寓和商店 每张桌子都有它的照片 照片存储在数据库中 我只想使用一张照片表 我不想为每辆汽车 公寓和商店创建照片表 Photos表结构是这样的 id photo url type destination id 1 h
  • 如何在 Windows 版 Git Bash 中更改 RGB 颜色?

    我在 Windows 中使用 Git Bash 并用于我的自定义目的git log格式 我想修改终端的确切 RGB 颜色值 以便我可以微调颜色输出 我的全局git日志格式如下 gitconfig lg1 log graph abbrev c
  • 如何更改javafx TextField中文本的颜色?

    我想更改 TextField 中的字体颜色 我发现 fx background color fx border color用于更改背景和边框的颜色 但不用于更改文本 设置 fx text fill对我有用 见下文 if passed res
  • 如何定位特定 div ID 的标题?

    我正在尝试使用与页面其余部分的标题不同的字体系列来设置标题中的所有标题的样式 但我无法使样式仅适用于特定的标题 ID 这是我尝试过的 header h1 h2 h3 h4 font family Helvetica 但这会导致所有 h1 2
  • 存储数百万张图像[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 扩展 UserPrincipal 类

    我扩展了 UserPrincipal 类来检索我需要的一些缺失的属性 DirectoryObjectClass user DirectoryRdnPrefix CN class UserPrincipalExt UserPrincipal
  • 如何消除 OSX10.10 SDK 中的 module.map 警告?

    自从将 Xcode 更新到版本 6 3 以来 我在编译 C 代码时收到以下警告 Applications Xcode app Contents Developer Platforms MacOSX platform Developer SD
  • 使未定义的变量在 php 中成为错误

    我有以下代码片段 它打印出一个警告bla未定义 但随后继续 我希望 php 在遇到未定义的变量时抛出错误并停止代码执行 怎么做 以上只是一个例子 我想处理数千个块内的每个未定义变量 您可以编写自己的错误处理程序 并在遇到此类通知时使其停止执
  • 如何从标准输入中提取 tar 存档?

    我有一个很大的 tar 文件split 是否有可能cat并使用管道解压文件 就像是 cat largefile tgz aa largefile tgz ab tar xz 代替 cat largefile tgz aa largfile
  • Android WebView 加载失败 (net::ERR_CLEARTEXT_NOT_PERMITTED)

    有人能帮助我吗 我在 Android 应用程序中使用 WebView compileSdkVersion 29 buildToolsVersion 29 0 0 minSdkVersion 16 targetSdkVersion 29 我在
  • Xcode UI 测试 - 使用 addSubview 添加的 Uiview 对于 UI 测试完全不可见

    我一直在尝试 XCode 7 3 上的新 UI 测试 并且发现了对我来说似乎是一个错误 问题是通过 添加的视图 添加子视图 方法对于UI测试系统来说似乎是完全不可见的 我有这样的看法 这个 UIview 创建代码 let container
  • 如何使用 *ngFor 迭代对象键?

    我一直在挖掘 发现我可以使用以下方法在对象上使用 ngFor div div where ObjNgFor管道是 Pipe name ObjNgFor pure false export class ObjNgFor implements
  • XHTML:将 DIV 放置在 A 标记中

    Is it alright将 div 标签放置在锚标签内 div 的内容会将页面重定向到锚标记的 href 吗 将 div 标签放在锚标签内可以吗 Yes if 您正在使用 HTML5 XHTML5 和 锚标记不在内联上下文中 即仅允许短语
  • 如何使用php从url读取xml文件

    我必须从 URL 读取 XML 文件 map url http maps google com maps api directions xml origin merchant address url destination customer
  • 从 PHP 中的函数返回多个值 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有这个函数 在调用它时返回三个值
  • Union 赋值中的不兼容类型

    Mypy 向我打印以下消息 x py 74 错误 赋值中的类型不兼容 表达式具有类型 Union str Dict str str 变量的类型为 str 是不是很奇怪 str是其一部分Union str Dict str str 代码如下
  • 从 PHP CLI 打开 Vim

    当你从提交命令中删除 m 时 如何从像 svn 和 git 那样的 CLI 打开 vim 我收到以下错误 Vim 警告 输出不是到终端 echo Please edit this file gt file name vim file nam
  • 如何使用 Perl 截取网页屏幕截图?

    是否可以用 Perl 编写一个脚本来打开不同的 URL 并保存每个 URL 的屏幕截图 你可以使用WWW 机械化 Firefox http search cpan org perldoc WWW Mechanize Firefox控制 Fi
  • 使用 FluentNHibernate 映射通用 EntityBase

    我的所有实体类型都有一个基类 就像 public abstract class EntityBase