gpt4 book ai didi

nhibernate - Fluent NHibernate 映射到没有暴露属性的私有(private)/ protected 字段

转载 作者:行者123 更新时间:2023-12-04 05:10:37 24 4
gpt4 key购买 nike

我有以下 PersonGender使用 NHibernate (Fluent NHibernate) 使用 NHibernate (Fluent NHibernate) 的类(我不是真的,但示例已简化)我想将数据库列“GenderId”[INT] 值映射到 protected int _genderId我的 Person 中的字段类(class)。我该怎么做呢?

仅供引用,映射和域对象位于单独的程序集中。

public class Person : Entity
{
protected int _genderId;

public virtual int Id { get; private set; }
public virtual string Name { get; private set; }

public virtual Gender Gender
{
get { return Gender.FromId(_genderId); }
}
}

public class Gender : EnumerationBase<Gender>
{
public static Gender Male
= new Gender(1, "Male");

public static Gender Female
= new Gender(2, "Female");

private static readonly Gender[] _genders
= new[] { Male, Female };

private Gender(int id, string name)
{
Id = id;
Name = name;
}

public int Id { get; private set; }
public string Name { get; private set; }

public static Gender FromId(int id)
{
return _genders.Where(x => x.Id == id).SingleOrDefault();
}
}

最佳答案

正如 dotjoe 所说,我认为您需要将其公开为 protected 属性(property)。然后你可以使用 Reveal映射。

您的类/映射可能看起来类似于

public class Person : Entity
{
protected int genderId{ get; set; }
}


public PersonMap : ClassMap<Person>
{
public PersonMap()
{
Map(Reveal.Member<Person>("genderId"))
}
}

还有类似的问题 herehere如果这有帮助。

关于nhibernate - Fluent NHibernate 映射到没有暴露属性的私有(private)/ protected 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2702417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com