如何将GeneratedBy.Native设置为CompositeId Fluent-NHibernate

时间:2016-01-14 13:26:47

标签: c# fluent-nhibernate nhibernate-mapping

我正在映射一个照片类,它可以有很多照片,所以我决定创建其他类来控制这些照片。

所以我有两个主键(PhotoCode,fkCode),其中一个是我的外键。

   public class Photo : EntityBase
    {
        public virtual long PhotoCode { get; set; }
        public virtual long fkCode { get; set; }
        public virtual byte[] Photo { get; set; }

        public override bool Equals(object obj)
        {
            var other = obj as Photo;

            if (ReferenceEquals(null, other)) return false;
            if (ReferenceEquals(this, other)) return true;

            return PhotoCode == other.PhotoCode &&
                    fkCode == other.fkCode;
        }

        public override int GetHashCode()
        {
            unchecked
            {
                int hash = GetType().GetHashCode();
                hash = (hash * 31) ^ PhotoCode.GetHashCode();
                hash = (hash * 31) ^ fkCode.GetHashCode();

                return hash;
            }
        }
    }

所以我想为我的PhotoCode设置一个Generator,在我的复合id上设置它。 这是我在类地图上的构造函数。

    public MapActivityPhoto()
    {
        Table("Photo");
        CompositeId()
            .KeyProperty(c => c.PhotoCode, "PhotoCode")
            .KeyProperty(c => c.fkCode, "fkCode");
        Map(c => c.Photo).Column("Photos");
     }

我知道如何在Id上设置它,但是我如何在复合上设置它?

示例Id:

Id(i => i.Code).Column("Code").GeneratedBy.Native("GeneratorCode");

0 个答案:

没有答案