首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NHibernate和Foreign映射SQL视图

使用NHibernate和Foreign映射SQL视图
EN

Stack Overflow用户
提问于 2012-02-22 16:38:58
回答 1查看 304关注 0票数 0

在我的解决方案中,我有以下项目

代码语言:javascript
复制
MySystem.Core
MySystem.Core.Data

MySystem.MyAudit1.Core
MySystem.MyAudit1.Core.Data

MySystem.MyAudit2.Core
MySystem.MyAudit2.Core.Data

审计项目的数量可能会增加到20个左右。

审计项目都需要一个“组织”参考数据表。我的计划是在核心项目中有一个“主”组织表,而不是在所有审计项目中重复相同的参考数据表20次,并试图保持它们的同步。

这将包含所有组织的代码和描述。然后,在每个特定的审计项目中都有一个OrganisationCode表,该表只包含与该审计相关的Org代码,而不包含描述,并且在审计数据库中有一个视图,该视图从核心Org表中查找描述如下:

代码语言:javascript
复制
CREATE VIEW Organisation AS
SELECT d.OrganisationCodeId as 'OrganisationId', d.Code, a.[Description]
FROM MyAudit1.dbo.OrganisationCode d
INNER JOIN [Core].dbo.OrganisationCode a ON d.Code = a.Code

这将意味着,如果Org描述发生变化,它们可以在一个地方更新,并在所有审计中反映出来。

但是,由于您不能在SQL中的视图上拥有外键,所以我在OrganisationCode表和审计数据库中的任何其他表之间创建了一个外键。

正如我所发现的那样,这当然会导致NHibernate尝试并返回OrganisationCode table ,而不是组织视图,并且在Nhibernate正在OrganisationCode表中寻找OrganisationId时,导致SessionFactory创建失败。

是否有一种简单的方法可以让我在核心项目中进行单一的描述查找,以获得可以跨子项目使用的引用数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-23 11:59:04

是的,审计表分散在单独的dbs上,但我已经找到了问题的路径。

我的SessionFactory创建失败的原因是,正在传递用于映射的审计数据程序集,而我的组织映射文件位于核心数据程序集中。

现在我已经解决了,通过在我的审计数据程序集中添加一个组织映射文件,我的信任对象将从组织视图返回描述值。

谢谢你找我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9399034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档