gpt4 book ai didi

C# 映射两个复杂对象

转载 作者:太空狗 更新时间:2023-10-30 01:01:42 25 4
gpt4 key购买 nike

我有四个类(class):

public class Customer
{
public string FirstName { get; set; }

public string LastName { get; set; }

public List<Product> Product { get; set; }
}

public class Product
{
public int ProductNumber { get; set; }

public string ProductColor { get; set; }
}

///////////////////////////////////////////////

public class Customer_
{
public string FirstName { get; set; }

public string LastName { get; set; }

public List<Article> Article { get; set; }
}

public class Article
{
public int ArticleNumber { get; set; }

public string ArticleColor { get; set; }
}

还有一个实例:

var Cus = new List<Customer>
{
new Customer()
{
FirstName = "FirstName1",
LastName = "LastName1",
Product = new List<Product>
{
new Product()
{
ProductColor = "ProductColor1",
ProductNumber = 11
}
}
},
new Customer()
{
FirstName = "FirstName2",
LastName = "LastName2",
Product = new List<Product>
{
new Product()
{
ProductColor = "ProductColor2",
ProductNumber = 12
}
}
}
};

我想创建一个新对象List<Customer_>使用我的实例的值 Cus .例如Customer.FirstName = Customer_.FirstName, Customer.Product.ProductColor = Customer_.Article.ArticleColor etc

轻松完成此操作的最佳方法是什么,可以使用 Dictionary 吗? ?

最佳答案

可以通过使用 Interface 来完成映射。 .


定义一个接口(interface),它提供逻辑命名属性的映射,例如您提到的常见颜色属性:

// Some entities have different named properties but can be joined
// using those properties. This interface shows a common color which
// when implemented will route the processing to a common shared property
// which reports and sets the associated color.
public interface IDefinedColor
{
string Color { get; set; }
}

如果您必须为 ProductArticle 创建partial 类,并让它们遵循上述接口(interface)。 提示如果使用 EF 等实体映射器,这是使用部分进行此类映射的好方法。实现实现接口(interface)并连接通用性:

// Holds the common properties for future processing.
public partial class Product : IDefinedColor
{
public string Color
{
get { return ProductColor; }
set { ProductColor = value; }
}
}

然后根据需要处理 IDefinedColor mapped 实现。


通过使用接口(interface),让所有 future 的开发人员都知道在属性中指定业务逻辑相等性的契约,并且它不会隐藏在其他加入类中。

关于C# 映射两个复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com