小编Ath*_*ina的帖子

linq查询问题

我正在尝试使用linq到NHibernate(使用Fluent NHibernate)但是我遇到了linq查询的问题.每次我尝试执行它时,我收到此消息:

" 方法'get_IsReadOnlyInitialized’型'NHibernate.Linq.Util.DetachedCriteriaAdapter’自组装'NHibernate.Linq,版本= 1.1.0.1001,文化=中立,公钥=空’没有实现. "

有人知道如何解决这个问题吗?我尝试使用模型上下文的这个页面的解决方案,但它没有帮助.

这是代码:

using(var session = NHibernateHelper.OpenSession())   
{   
var informations = (from i in  session<Information>() where i.Text=="some text" select  i).ToList();   
}
Run Code Online (Sandbox Code Playgroud)

一切都很好,如果我不使用where部分,但如果我使用它我得到这个错误.我认为问题出在NHibernate.Linq.dll中

linq nhibernate fluent-nhibernate linq-to-nhibernate

30
推荐指数
1
解决办法
4176
查看次数

使用Fluent nhibernate自动进行继承

我有这种情况:

public namespace ANamespace
{
    public abstract class ABase:IABase
    {
        //properties
    }

    public abstract class A : ABase
    {
        //properties
    }

    public class A1 : A
    {
        //properties
    }

    public class A2 : A
    {
        //properties
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我使用此映射代码:

AutoMap
   .AssemblyOf<ABase>()
   .Where(e => e.Namespace == "ANamespace")
   .IncludeBase<A>().IgnoreBase<ABase>();
Run Code Online (Sandbox Code Playgroud)

仅创建一个表(具有ABase和A属性).如果我删除IncludeBase(),则创建A1和A2(包含所有属性).

AutoMap
   .AssemblyOf<ABase>()
   .Where(e => e.Namespace == "ANamespace")
   .IgnoreBase<ABase>();
Run Code Online (Sandbox Code Playgroud)

如何编写映射以在我的数据库中为类A(具有所有A和ABase属性),A1和A2(具有特定属性)而不是ABase类创建表?

c# nhibernate inheritance automapping

6
推荐指数
1
解决办法
1138
查看次数