Fluent-NHibernate映射问题

Fluent-NHibernate映射问题,nhibernate,orm,fluent-nhibernate,mapping,Nhibernate,Orm,Fluent Nhibernate,Mapping,我正在尝试使用Fluent Nhibernate映射几个表。我的测试显示以下错误: NHibernate.Exceptions.GenericADOException:无法初始化集合:[FluentWeb.Domain.Employees.Orders#1] 我试图在员工和订单之间建立一对多的关系。订单与产品之间存在多对多关系(NorthWind)。这是我的映射。。谁能帮我一下吗。所有人都在与HBMs合作 public class EmployeeMap : ClassMap<Employ

我正在尝试使用Fluent Nhibernate映射几个表。我的测试显示以下错误: NHibernate.Exceptions.GenericADOException:无法初始化集合:[FluentWeb.Domain.Employees.Orders#1]

我试图在员工和订单之间建立一对多的关系。订单与产品之间存在多对多关系(NorthWind)。这是我的映射。。谁能帮我一下吗。所有人都在与HBMs合作

public class EmployeeMap : ClassMap<Employees>
{

    public EmployeeMap()
    {
        Id(x => x.EmployeeID);
        Map(x => x.FirstName);
        Map(x => x.LastName);
        Map(x => x.City);
        Map(x => x.HireDate);
        Map(x => x.Title);
        HasMany(x => x.Orders)
            .AsBag().WithForeignKeyConstraintName("EmployeeID")
            .Inverse()
            .Cascade.All();


    }
}

 public class OrdersMap : ClassMap<Orders>
{
    public OrdersMap()
    {
        Id(x => x.OrderID);
        Map(x => x.OrderDate);
        Map(x => x.RequiredDate);
        Map(x => x.ShippedDate);
        References(x => x.Employee);
        HasManyToMany(x => x.Products)
            .Cascade.All()
            .WithTableName("Order Details");

    }
}

public class ProductsMap : ClassMap<Products>
{
    public ProductsMap()
    {
        Id(x => x.ProductID);
        Map(x => x.ProductName);
        Map(x => x.UnitPrice);
        HasManyToMany(x => x.Orders)
            .Cascade.All()
            .Inverse()
            .WithTableName("Order Details");


    }
}
公共类EmployeeMap:ClassMap
{
公共雇员地图()
{
Id(x=>x.EmployeeID);
Map(x=>x.FirstName);
Map(x=>x.LastName);
地图(x=>x.City);
Map(x=>x.HireDate);
地图(x=>x.Title);
HasMany(x=>x.Orders)
.AsBag().WithForeignKeyConstraintName(“员工ID”)
.Inverse()
.Cascade.All();
}
}
公共类OrdersMap:ClassMap
{
公共秩序地图()
{
Id(x=>x.OrderID);
映射(x=>x.OrderDate);
Map(x=>x.RequiredDate);
地图(x=>x.ShippedDate);
参考文献(x=>x.Employee);
HasManyToMany(x=>x.Products)
.Cascade.All()
.WithTableName(“订单详情”);
}
}
公共类产品映射:类映射
{
公共产品MAP()
{
Id(x=>x.ProductID);
地图(x=>x.ProductName);
地图(x=>x.单价);
HasManyToMany(x=>x.Orders)
.Cascade.All()
.Inverse()
.WithTableName(“订单详情”);
}
}
如果需要更多信息,请告诉我。谢谢你的帮助


-表名中的空格通常是一个非常糟糕的主意。如果无法删除它们,请尝试在backticks中包围表名,这是NHibernate的数据库不可知转义机制

.WithTableName("`Order Details`');

您是否尝试过转储并检查生成的映射文件和SQL创建脚本?对。。。我正在使用Norhtwind DB进行测试。那么,您是说问题出在“WithTableName()”上吗?我会试试这个。通常在使用纯sql时,需要转义包含空格的表名,因此可能需要对NH执行同样的操作。