Tôi đang gặp sự cố trong ví dụ Fluent NHibernate sử dụng mối quan hệ Nhiều-nhiều. Tôi đã cố gắng tìm ra các ví dụ về một trường hợp tương tự, và tôi đã tìm thấy tấn, nhưng tôi vẫn gặp vấn đề tương tự.Fluent NHibernate HasManyToMany() Lập bản đồ
Khi chạy dự án thử nghiệm, các ngoại lệ sau đây được ném:
NHibernate.PropertyAccessException: ngoại lệ xảy ra getter của project.Entities.User.UserName ---> System.Reflection.TargetException: Object không trận đấu Loại mục tiêu.
Đây là hình ảnh của các bảng:
và mã
public UsersMap()
{
this.Table("Users");
Id(x => x.UserName).Column("Username").GeneratedBy.Assigned();
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.Password);
Map(x =>x.EMail);
Map(x => x.Title);
Map(x => x.Division);
HasManyToMany<User>(x => x.Roles)
.Table("UserInRoles").ParentKeyColumn("Username")
.ChildKeyColumn("Usernamepk")
.Cascade.SaveUpdate().LazyLoad();
}
public RolesMap()
{
this.Table("Roles");
Id(x => x.ID).GeneratedBy.Assigned().Column("ID");
Map(x => x.RoleName).Length(50);
HasManyToMany<User>(x => x.Users)
.Table("UserInRoles").ParentKeyColumn("ID")
.ChildKeyColumn("RoleIdpk").Cascade.SaveUpdate().LazyLoad();
}
đây là mã, hầu hết các ví dụ trên web và các trang ánh xạ thành thạo NHibernate được viết bằng theo cùng một cách, vì vậy bất kỳ ý tưởng?
btw, im sử dụng Phiên bản thông thạo 1.0, vì vậy .WithTableName() là Bảng() thay vào đó, dù sao, tôi đã cố gắng sử dụng nó mà không cần tải xuống và các chế độ khác, nhưng vẫn là ngoại lệ tương tự: S – Saeedouv
Bạn có chắc chắn cần được ánh xạ cả hai mặt? – UpTheCreek
Đối với tình huống của tôi, tôi không muốn ràng buộc hai chiều. Tôi có công ty, người và địa chỉ và mọi công ty hoặc người có thể có nhiều hơn 1 địa chỉ. Trong tình huống này tôi nên làm gì? – uzay95