相关疑难解决方法(0)

如何告诉Fluent NHibernate不要映射类属性

我有一个以流畅的nhibernate映射的类,但我希望映射忽略其中一个类属性.

使用下面的类和映射我得到此错误:

以下类型不能用作代理:iMasterengine.Data.Model.Calendar:方法get_HasEvents应该是虚拟的

//my class
public class Calendar : IEntity {
    public virtual int Id { get; private set; }
    public virtual string Name { get; set; }
    public virtual string SiteId { get; set; }
    public virtual IList<CalendarEvent> Events { get; set; }
    //ignore this property
    public bool HasEvents { get { return Events.Count > 0; } }
}

//my mapping
public class CalendarMap : ClassMap<Calendar> {
    public CalendarMap() {
        Id(x => x.Id);
        Map(x => x.Name);
        Map(x => x.SiteId); …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate fluent-nhibernate

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

NHibernate异常:方法添加应该是'public/protected virtual'或'protected internal virtual'

以这堂课为例:

public class Category : PersistentObject<int>
{
    public virtual string Title { get; set; }
    public virtual string Alias { get; set; }

    public virtual Category ParentCategory { get; set; }
    public virtual ISet<Category> ChildCategories { get; set; }


    public /*virtual*/ void Add(Category child)
    {
        if (child != null)
        {
            child.ParentCategory = this;
            ChildCategories.Add(child);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在没有add方法的虚拟关键字的情况下运行应用程序时,我收到此错误:

method Add should be 'public/protected virtual' or 'protected internal virtual'
Run Code Online (Sandbox Code Playgroud)

我理解为什么属性需要声明为虚拟,因为它需要被延迟加载功能覆盖.

但我不明白为什么需要将方法声明为虚拟...它们需要被覆盖的原因是什么?

这非常令人困惑!

nhibernate lazy-loading

9
推荐指数
1
解决办法
8185
查看次数

流畅的NHibernate生成审计

我需要一些帮助来设置我的Fluent NHibernate POCO类结构.我试图让一个方法使一个对象可审计.在创建时,我希望我的创建和修改日期时间设置和更新,我希望我的修改更新.我一直在关注一些例子,但我遇到了障碍.这是我目前的设置:

IAuditable.cs

namespace ZeroBase.Domain.Entities
{
public interface IAuditable
{
    DateTime Created
    {
        get;
    }

    DateTime Modified
    {
        get;
    }

    string CreatedPropertyName
    {
        get;
    }

    string ModifiedPropertyName
    {
        get;
    }

    void SetCreationDate(DateTime created);
    void SetModifiedDate(DateTime modified);
}
}
Run Code Online (Sandbox Code Playgroud)

AuditableEntity.cs

namespace ZeroBase.Domain.Entities
{
public class AuditableEntity<T> : IAuditable
{
    public DateTime Created { get; private set; }
    public DateTime Modified { get; private set; }

    void IAuditable.SetCreationDate(DateTime created)
    {
        this.Created = created;
    }

    void IAuditable.SetModifiedDate(DateTime modified)
    {
        this.Modified = modified; …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate fluent-nhibernate

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

标签 统计

nhibernate ×3

c# ×2

fluent-nhibernate ×2

lazy-loading ×1