相关疑难解决方法(0)

使用流畅的NHibernate AutoMapping保存级联

如何使用具有Fluent NHibernate的AutoMap持久性模型"打开"级联保存?

如:

我救人,手臂也应该保存.目前我明白了

"对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例"

public class Person : DomainEntity
{
  public virtual Arm LeftArm { get; set; }
}

public class Arm : DomainEntity
{
  public virtual int Size { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我发现了一篇关于这个主题的文章,但似乎已经过时了.

fluent-nhibernate automapping

21
推荐指数
2
解决办法
1万
查看次数

流畅的NHibernate级联删除无法正常工作

我有一个使用Fluent NHibernate 1.1的简单手机目录应用程序.在应用程序中,"Person"对象具有许多"PhoneNumber"对象.我正在尝试删除一个人,我想将删除级联到PhoneNumbers.我DefaultCascade.All()在阅读完这个答案后设定了一个惯例.但是,尝试删除父对象仍会引发异常 - 似乎NHibernate正在尝试更新子表以将父ID设置为null而不是仅删除记录:

{"无法删除集合:[Person.PhoneNumbers#473] [SQL:UPDATE phone_numbers SET person_id = null WHERE person_id = @ p0]"}

的InnerException:

{"无法将值NULL插入列'person_id',表'directory.dbo.phone_numbers';列不允许空值.UPDATE失败.\ r \n语句已终止."}

我的Fluent配置是:

public static ISessionFactory CreateSessionFactory() {
    return Fluently.Configure()
        .Database(MsSqlConfiguration.MsSql2008
            .ConnectionString(ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings["activeConnStr"]].ConnectionString))
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Person>()
                                        .Conventions.Add(DefaultCascade.All())
                    )
        .BuildSessionFactory();
}
Run Code Online (Sandbox Code Playgroud)

父类是:

public class Person {
    public Person() {
        PhoneNumbers = new List<PhoneNumber>();
        EmailAddresses = new List<string>();
    }

    public virtual int Id { get; private set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName …
Run Code Online (Sandbox Code Playgroud)

c# fluent-nhibernate

18
推荐指数
2
解决办法
2万
查看次数

标签 统计

fluent-nhibernate ×2

automapping ×1

c# ×1