Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动制版机_C#_Database_Postgresql_Visual Studio_Automapper - Fatal编程技术网

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();
    }
}