데이터베이스 (SQL2012Express)가 생성 될 때mvc4 응용 프로그램에서 많은 매핑과 함께 많은 매핑에 문제가 있습니다. 매핑 할 두 테이블이 생성되지 않습니다.다 - 많은 유창 NHibernate 문제
제품을 여러 카테고리에 연결할 수 있고 카테고리가 많은 제품 일 수 있기 때문에 많은 관계로 매핑하고 싶습니다.
public class Categoria : BaseEntity
{
public virtual string Name { get; set; }
public virtual ICollection<Prodotti> Prodotti { get; set; }
public Categoria()
{
Prodotti = new List<Prodotti>();
}
public virtual void AddProdotti(Prodotti pro)
{
Prodotti.Add(pro);
}
}
을 그리고을 prduct 클래스 : 내 수업 카테고리에서 나는이
각각public class Prodotti:BaseEntity
{
public virtual string Name { get; set; }
public virtual ICollection<Categoria> Categoria { get; set; }
public virtual void AddCategorie(Categoria cat)
{
Categoria.Add(cat);
}
public Prodotti()
{
Categoria = new List<Categoria>();
}
}
클래스 맵은 다음과 같습니다
public class CategoriaMap : ClassMap<Categoria>
{
public CategoriaMap()
{
Id(x => x.Id).GeneratedBy.HiLo("Id");
Map(x => x.Name);
Map(x => x.Description);
Map(x => x.Active).Default("True");
HasManyToMany(x => x.Prodotti)
.Inverse()
.Table("CategoryProductsMap")
.ParentKeyColumn("CategoriaId").ChildKeyColumn("ProdottiId")
.Cascade.All(); ;
}
}
public class ProdottiMap :ClassMap<Prodotti>
{
public ProdottiMap()
{
Id(x=>x.Id).GeneratedBy.HiLo("Id");
Map(x => x.Name).Not.Nullable();
Map(x => x.Price).Precision(3);
Map(x => x.isFeatured).Nullable();
Map(x => x.ShortDescription);
Map(x => x.FullDescription);
Map(x => x.ShowOnHomePage).Nullable();
Map(x => x.Images);
Map(x => x.Published).Default("False");
Map(x => x.MetaDescription);
Map(x => x.MetaKeywords);
Map(x => x.MetaTitle);
Map(x => x.SeName);
Map(x => x.Deleted).Default("False");
Map(x => x.MinimumPurchaseCount);
Map(x => x.ShippingWeight);
Map(x => x.ShippingHeight);
Map(x => x.ShippingLength);
Map(x => x.ShippingWidth);
Map(x => x.CreatedOnUtc);
Map(x => x.UpdatedOnUtc);
HasManyToMany(x => x.Categoria)
.Table("CategoryProductsMap")
.ParentKeyColumn("ProdottiId").ChildKeyColumn("CategoriaId");
}
}
구성은 다음과 같습니다
var configuration =Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ShowSql().ConnectionString(c =>
c.FromConnectionStringWithKey("Connection1")))
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf<latticinibufala.Entities.Maps.CustomerMap>() )
// Set session context class to enable ManagedWebSessionContext usage
.ExposeConfiguration(cfg => cfg.SetProperty("current_session_context_class", "managed_web"))
.ExposeConfiguration(cfg => cfg.SetProperty("adonet.batch_size", "10"))
.ExposeConfiguration(BuildSchema)
.BuildConfiguration()
;
sessionFactory = configuration.BuildSessionFactory();
무엇이 잘못 될 수 있습니까?
을 추가 하시겠습니까? CategoryMap은 어떻게 보이나요? – strmstn
은 데이터베이스 테이블에서 범주 및 제품이 아닌 "CategoryProductsMap"만 표시하므로 작동하지 않습니다. 카테고리 맵을 쓰는 방법을 설명 할 수 있습니까? 아마도 내가 어떻게 범주를 매핑했는지 알고 싶습니다. 실례지만 질문을 이해하지 못합니다! – TheNeXt
열을 "Prodotti_Id"및 "Categoria_Id"로 설정하면 문제가 해결 될 수 있는지 확인할 수 있습니까? – Mariusz