标签: fluent-nhibernate

FluentNHibernate错误 - "无效的对象名称"

我正在尝试使用FluentNHibernate和Sql2005进行最简单的映射.基本上,我有一个名为"sv_Categories"的数据库表.我想添加一个类别,自动设置ID,并添加提供的用户ID和标题.

数据库表格布局:

  • CategoryID - int - 非null,主键,自动递增
  • UserID - uniqueidentifier - not null
  • 标题 - varchar(50) - 非null

简单.

My SessionFactory code (which works, as far as I can tell):
            _SessionFactory = Fluently.Configure().Database(
                MsSqlConfiguration.MsSql2005
                    .ConnectionString(c => c.FromConnectionStringWithKey("SVTest")))
                    .Mappings(x => x.FluentMappings.AddFromAssemblyOf<CategoryMap>())
                    .BuildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

我的ClassMap代码:

public class CategoryMap : ClassMap<Category>
{
    public CategoryMap()
    { 
        Id(x => x.ID).Column("CategoryID").Unique();
        Map(x => x.Title).Column("Title").Not.Nullable();
        Map(x => x.UserID).Column("UserID").Not.Nullable();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的班级代码:

public class Category
{
    public virtual int ID { get; private set; }
    public virtual string Title …
Run Code Online (Sandbox Code Playgroud)

asp.net nhibernate sql-server-2005 fluent-nhibernate

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

在(Fluent)NHibernate中映射'value object'集合

我有以下实体

public class Employee
{
   public virtual int Id {get;set;}
   public virtual ISet<Hour> XboxBreakHours{get;set}
   public virtual ISet<Hour> CoffeeBreakHours {get;set}
}

public class Hour
{
   public DateTime Time {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

(我想在这里做的是员工A每天播放Xbox的商店信息,比如9:00 13:30,每天7:00 12:30 18:00喝咖啡休息时间) - 我不确定我的方法这里有效.

问题是我的(理想上流畅的)映射应该如何?对于Hour类来说,没有必要(从我的角度来看)具有Id或可以从某种存储库访问.

nhibernate domain-driven-design fluent-nhibernate

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

Fluent Nhibernate - 将两个实体映射到同一个表

我正在尝试将两个域实体映射到同一个表.我们正在为我们的域模型做一个智能实体,所以我们有一个可编辑地址和一个只读地址的概念.我已经使用Classmaps进行了映射,在我们尝试使用NHibernate中的SchemaExport类导出模式之前,一切似乎都很顺利.它错误地说该表已经存在.

我认为这很简单,我只是没有看到.

有任何想法吗?

谢谢

更新

还有一些我未提及的其他事情.我对迄今为止回答的人表示赞赏,但他们并不适合我们.

一个是我们有一个地址表,不包括任何具有地址的实体中的列.

另一个是我们不能使用通用基类.对于可编辑对象,我们有一个超类,它将验证行为添加到子类中.readonly对象虽然不需要这种行为,但不应该有这些行为.

我已经考虑了一个接口,但后来我相信我最终会陷入困境,你可以在这个接口上投射一个只读对象,然后改变它的值(因为大概NHibernate会使用所说的接口来水合对象).

因此,如果有另一种方法来实现这一点,或者如果通过接口进行映射不会出现我所描述的问题,请告诉我.我还在学习NHibernate.

再次感谢!

c# nhibernate nhibernate-mapping fluent-nhibernate

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

尝试运行Fluent NHibernate教程示例时出现运行时错误

我在http://wiki.fluentnhibernate.org/Getting_started上完成了Fluent NHibernate教程,项目编译得很好.

但是,我收到运行时错误,我似乎无法解决它.您可以在教程中看到的CreateSessionFactory方法中发生错误.这里是:

private static ISessionFactory CreateSessionFactory()
{
    return Fluently.Configure()
        .Database
        (
            SQLiteConfiguration.Standard
                .UsingFile(DbFile)
        )
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<FluentNHibernateSample.Program>())
        .ExposeConfiguration(BuildSchema)
        .BuildSessionFactory();

}
Run Code Online (Sandbox Code Playgroud)

我认为最有帮助的事情是给你从最外层异常到最内层异常的异常链(这是一个真正的单词):

An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
    An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
        Could not compile the mapping document: (XmlDocument)
            persistent class FluentNHibernateSample.Entities.Employee, FluentNHibernate, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null not found
                Could not …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate visual-studio-2010 fluent-nhibernate assembly-resolution

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

NHibernate查询不返回任何结果

我正在尝试使用ASP.NET MVC正确配置Fluent和NHibernate。据我所知,它的配置正确,但是当我访问使用该设置的页面时,没有收到任何数据结果。

我使用的模型称为Brand,数据库表为Brands

这是我的BrandController的片段:

public ActionResult Index()
{
    IRepository<Brand> repo = new BrandRepository();
    var brands = repo.GetAll().ToList<Brand>();

     return View(brands);
}
Run Code Online (Sandbox Code Playgroud)

这是我的BrandRepository中的摘录:

ICollection<Brand> IRepository<Brand>.GetAll()
{
    using (ISession session = NHibernateHelper.OpenSession())
    {
        var brands = session
            .CreateCriteria(typeof(Brand))
            .List<Brand>();

        return brands;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的NHibernateHelper:

public class NHibernateHelper
{
    private static ISessionFactory _sessionFactory;

    private static ISessionFactory SessionFactory
    {
        get
        {
            if (_sessionFactory == null)
            {
                _sessionFactory = Fluently.Configure()
                    .Database(
                        MsSqlConfiguration.MsSql2008
                            .ConnectionString(c => c
                                .FromConnectionStringWithKey("ShoesFullAccess")
                            )
                    )
                    .BuildSessionFactory();
            }

            return _sessionFactory; …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent-nhibernate asp.net-mvc-2

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

NHibernate审计 - PostInsert不工作

我的应用程序具有以下实体:

public class User
{
    public virtual int UserID { get; set; }
    public virtual string UserName { get; set; }
    public virtual IList<UserLog> Log { get; private set; }

    public User()
    {
        Log = new List<UserLog>();
    }
}

public class UserLog
{
    public virtual int UserLogID { get; set; }
    public virtual User User { get; set; }
    public virtual string UserName { get; set; }
    public virtual DateTime DateCreated { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用以下流畅的映射:

public class UserMap …
Run Code Online (Sandbox Code Playgroud)

nhibernate nhibernate-mapping fluent-nhibernate

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

自定义nhibernate的错误消息

当删除nhibernate中的实体时,我得到一个带有此错误消息的异常:
delete语句与列引用约束冲突..
当然,异常包含在很长的异常系列中.

错误消息是正常的,但我可以让nhibernate向用户显示更多礼貌的错误消息吗?
换句话说:
是否有任何约定,我可以自定义异常?

我正在使用Oracle 11g数据库.

nhibernate fluent-nhibernate

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

FluentNHibernate SQL Server 2005/2008安装教程

有没有人知道任何有关如何为SQL Server 2005/2008配置FluentNhibernate的好教程.我发现的那些通常只使用SQLite,但我希望看到一个专门针对SQL Server 2005/2008.

我非常喜欢FluentNhibernate网站上的示例教程(http://wiki.fluentnhibernate.org/Getting_started#Your_first_project),但看起来我发现的大多数教程似乎只处理SQLite.很高兴看到一个工作教程,处理SQL Server 2005/2008,MySQL等真实世界应用程序中更常见的数据库,谢谢!

sql-server nhibernate configuration fluent-nhibernate

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

流畅的nhibernate - 具有属性的多对多映射

我有2个主表,它们通过地图表链接如下

User [UserId,Name]

Resource [ResourceId,Name]

UserResourceMap [UserId,ResourceId,AccessLevel]
Run Code Online (Sandbox Code Playgroud)

具有AccessLevel的Resource和User ClassMap如何作为资源属性?

我的Domain类看起来像这样

public class User
{
    public virtual int UserId { get;protected set; }
    public virtual string Name { get;set; }
}
public class Resource
{
    public virtual int ResourceId { get;protected set; }
    public virtual string Name { get;set; }
    public virtual string AccessLevel { get;set; }//Issue-populate this using fluent
}
Run Code Online (Sandbox Code Playgroud)

如何在下面的代码中使用fluent映射accessLevel属性.

public class UserMap : ClassMap<User>
    {
        public UserMap()
        {
            Table("User");
            Id(x => x.Key);
            Map(x=>x.Name);
        }
    }

public class ResourceMap …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate nhibernate-mapping fluent-nhibernate

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

用流利的NH来映射视图吗?

在流利的NH中有任何方式可以将[查看]映射到c#类吗?我需要让它们只读.

nhibernate nhibernate-mapping fluent-nhibernate

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