【发布时间】:2017-06-22 16:02:02
【问题描述】:
我正在使用 Linq to Entity ,Linq 查询返回一个 ToList() 并在 DataSourcesModel 类中存储多行。后来我使用 foreach 来迭代项目并将值存储在 DataSourcesModelDTO 中,直到这里工作正常。
现在的问题是 DataSourcesModelDTO dto 只存储一个行值。 我期望它应该存储多行值。如何在 extension 方法中实现这一点?
** var datasoruceModeltDTO = DataSourcesDTOTransformers.ToDTO(result);**
public static class DataSourcesDTOTransformers
{
public static DataSourcesModelDTO ToDTO(this List<DataSourcesModel> model)
{
if (model == null) { return null; }
var dto = new DataSourcesModelDTO();
ToDTO(model, dto);
return dto;
}
public static void ToDTO(List<DataSourcesModel> model1, DataSourcesModelDTO dto)
{
foreach (var model in model1)
{
dto.DataSourceConfigID = model.DataSourceConfigID.ToString();
dto.DataSourceID = model.DataSourceID.ToString();
dto.Name = model.Name;
dto.server = model.server;
dto.LastModified = model.LastModified;
dto.Instance = model.Instance;
}
}
}
[DataContract]
public class DataSourcesModelDTO
{
[DataMember]
public string DataSourceID { get; set; }
[DataMember]
public string DataSourceConfigID { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string server { get; set; }
[DataMember]
public string Instance { get; set; }
[DataMember]
public bool Deleted { get; set; }
[DataMember]
public DateTime LastModified { get; set; }
[DataMember]
public DateTime LastSync { get; set; }
}
【问题讨论】:
-
你丢失了:DataRow newRow = dto.Rows.Add(); newRow.DataSourceConfigID = model.DataSourceConfigID.ToString();
-
不,我这里没有使用 dataTable。我已经添加了我的 DTO 类。
标签: c# linq-to-entities extension-methods generic-list