C# 自动制版机
我有以下要映射的数据库实体: 产品C# 自动制版机,c#,database,postgresql,visual-studio,automapper,C#,Database,Postgresql,Visual Studio,Automapper,我有以下要映射的数据库实体: 产品 public partial class Products { public Products() { SalesProducts = new HashSet<SalesProducts>(); } public int ProductId { get; set; } public string ProductName { get; set; } public string Desc
public partial class Products
{
public Products()
{
SalesProducts = new HashSet<SalesProducts>();
}
public int ProductId { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public float Price { get; set; }
public int Quant { get; set; }
public ICollection<SalesProducts> SalesProducts { get; set; }
}
public class Products
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public float Price { get; set; }
public int Quant { get; set; }
}
这些模型:
产品
public partial class Products
{
public Products()
{
SalesProducts = new HashSet<SalesProducts>();
}
public int ProductId { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public float Price { get; set; }
public int Quant { get; set; }
public ICollection<SalesProducts> SalesProducts { get; set; }
}
public class Products
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public float Price { get; set; }
public int Quant { get; set; }
}
销售
销售详情
public class SalesDetails
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string Description { get; set; }
public int Quantity { get; set; }
}
所有销售映射:
public class SalesProfiles : Profile
{
public SalesProfiles()
{
CreateMap<DataModels.Sales, Models.Sales>()
.ForMember(dest => dest.SaleId, opt => opt.MapFrom(src => src.SaleId))
.ForMember(dest => dest.ClientId, opt => opt.MapFrom(src => src.Client.ClientId))
.ForMember(dest => dest.ClientFirstName, opt => opt.MapFrom(src => src.Client.FirstName))
.ForMember(dest => dest.ClientLastName, opt => opt.MapFrom(src => src.Client.LastName))
.ForMember(dest => dest.Date, opt => opt.MapFrom(src => src.Date))
.ForMember(dest => dest.TotalPrice, opt => opt.MapFrom(src => src.TotalPrice));
CreateMap<DataModels.Products, Models.SalesDetails>()
.ForMember(dest => dest.ProductId, opt => opt.MapFrom(src => src.ProductId))
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quantity, opt => opt.Ignore());
CreateMap<DataModels.SalesProducts, Models.SalesDetails>()
.ForMember(dest => dest.ProductId, opt => opt.MapFrom(src => src.Product.ProductId))
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.Product.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Product.Description))
.ForMember(dest => dest.Quantity, opt => opt.MapFrom(src => src.Quantity));
}
}
公共类SalesProfiles:Profile
{
公共销售资料()
{
CreateMap()
.ForMember(dest=>dest.SaleId,opt=>opt.MapFrom(src=>src.SaleId))
.FormMember(dest=>dest.ClientId,opt=>opt.MapFrom(src=>src.Client.ClientId))
.ForMember(dest=>dest.ClientFirstName,opt=>opt.MapFrom(src=>src.Client.FirstName))
.FormMember(dest=>dest.ClientLastName,opt=>opt.MapFrom(src=>src.Client.LastName))
.ForMember(dest=>dest.Date,opt=>opt.MapFrom(src=>src.Date))
.ForMember(dest=>dest.TotalPrice,opt=>opt.MapFrom(src=>src.TotalPrice));
CreateMap()
.FormMember(dest=>dest.ProductId,opt=>opt.MapFrom(src=>src.ProductId))
.FormMember(dest=>dest.ProductName,opt=>opt.MapFrom(src=>src.ProductName))
.FormMember(dest=>dest.Description,opt=>opt.MapFrom(src=>src.Description))
.ForMember(dest=>dest.Quantity,opt=>opt.Ignore());
CreateMap()
.FormMember(dest=>dest.ProductId,opt=>opt.MapFrom(src=>src.Product.ProductId))
.FormMember(dest=>dest.ProductName,opt=>opt.MapFrom(src=>src.Product.ProductName))
.FormMember(dest=>dest.Description,opt=>opt.MapFrom(src=>src.Product.Description))
.ForMember(dest=>dest.Quantity,opt=>opt.MapFrom(src=>src.Quantity));
}
}
产品映射
public class ProductsProfiles : Profile
{
public ProductsProfiles()
{
CreateMap<Models.Products, BindingModels.Products>()
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quant, opt => opt.MapFrom(src => src.Quant))
.ForMember(dest => dest.Price, opt => opt.MapFrom(src => src.Price))
.ReverseMap();
CreateMap<Models.Products, DataModels.Products>()
.ForMember(dest => dest.ProductId, opt => opt.MapFrom(src => src.ProductId))
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quant, opt => opt.MapFrom(src => src.Quant))
.ForMember(dest => dest.Price, opt => opt.MapFrom(src => src.Price))
.ReverseMap();
CreateMap<BindingModels.Products, DataModels.Products>()
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quant, opt => opt.MapFrom(src => src.Quant))
.ForMember(dest => dest.Price, opt => opt.MapFrom(src => src.Price))
.ReverseMap();
CreateMap<DataModels.Products, Models.Products>()
.ForMember(dest => dest.ProductId, opt => opt.MapFrom(src => src.ProductId))
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quant, opt => opt.MapFrom(src => src.Quant))
.ForMember(dest => dest.Price, opt => opt.MapFrom(src => src.Price))
.ReverseMap();
}
}
公共类产品配置文件:配置文件
{
公共产品配置文件()
{
CreateMap()
.FormMember(dest=>dest.ProductName,opt=>opt.MapFrom(src=>src.ProductName))
.FormMember(dest=>dest.Description,opt=>opt.MapFrom(src=>src.Description))
.FormMember(dest=>dest.Quant,opt=>opt.MapFrom(src=>src.Quant))
.ForMember(dest=>dest.Price,opt=>opt.MapFrom(src=>src.Price))
.ReverseMap();
CreateMap()
.FormMember(dest=>dest.ProductId,opt=>opt.MapFrom(src=>src.ProductId))
.FormMember(dest=>dest.ProductName,opt=>opt.MapFrom(src=>src.ProductName))
.FormMember(dest=>dest.Description,opt=>opt.MapFrom(src=>src.Description))
.FormMember(dest=>dest.Quant,opt=>opt.MapFrom(src=>src.Quant))
.ForMember(dest=>dest.Price,opt=>opt.MapFrom(src=>src.Price))
.ReverseMap();
CreateMap()
.FormMember(dest=>dest.ProductName,opt=>opt.MapFrom(src=>src.ProductName))
.FormMember(dest=>dest.Description,opt=>opt.MapFrom(src=>src.Description))
.FormMember(dest=>dest.Quant,opt=>opt.MapFrom(src=>src.Quant))
.ForMember(dest=>dest.Price,opt=>opt.MapFrom(src=>src.Price))
.ReverseMap();
CreateMap()
.FormMember(dest=>dest.ProductId,opt=>opt.MapFrom(src=>src.ProductId))
.FormMember(dest=>dest.ProductName,opt=>opt.MapFrom(src=>src.ProductName))
.FormMember(dest=>dest.Description,opt=>opt.MapFrom(src=>src.Description))
.FormMember(dest=>dest.Quant,opt=>opt.MapFrom(src=>src.Quant))
.ForMember(dest=>dest.Price,opt=>opt.MapFrom(src=>src.Price))
.ReverseMap();
}
}
这是销售和产品之间的n对n关系。有人知道我怎样才能正确地与automapper进行映射吗
我已经尝试映射,但它总是说产品属性未映射您可以发布您尝试过的代码吗(根据您的评论-我已经尝试映射,但它总是说产品属性未映射)?已经发布。它说,产品名称和描述是不正确的mapped@JoãoSilva映射是正确的。您确定这就是您的全部映射配置吗?显示使用Product的用户?@CodeNotFound All mappeds PostedCreat:)产品属性未映射异常消息还包含与此问题相关的属性。查看异常消息和内部异常,您将看到属性列表。
public class ProductsProfiles : Profile
{
public ProductsProfiles()
{
CreateMap<Models.Products, BindingModels.Products>()
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quant, opt => opt.MapFrom(src => src.Quant))
.ForMember(dest => dest.Price, opt => opt.MapFrom(src => src.Price))
.ReverseMap();
CreateMap<Models.Products, DataModels.Products>()
.ForMember(dest => dest.ProductId, opt => opt.MapFrom(src => src.ProductId))
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quant, opt => opt.MapFrom(src => src.Quant))
.ForMember(dest => dest.Price, opt => opt.MapFrom(src => src.Price))
.ReverseMap();
CreateMap<BindingModels.Products, DataModels.Products>()
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quant, opt => opt.MapFrom(src => src.Quant))
.ForMember(dest => dest.Price, opt => opt.MapFrom(src => src.Price))
.ReverseMap();
CreateMap<DataModels.Products, Models.Products>()
.ForMember(dest => dest.ProductId, opt => opt.MapFrom(src => src.ProductId))
.ForMember(dest => dest.ProductName, opt => opt.MapFrom(src => src.ProductName))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.Quant, opt => opt.MapFrom(src => src.Quant))
.ForMember(dest => dest.Price, opt => opt.MapFrom(src => src.Price))
.ReverseMap();
}
}