سلام
در زمان دریافت اطلاعات از بانک اطلاعاتی می خوام فقط همان ستون هایی که نیاز دارم را از بانک دریافت کنم. بنابراین Query را بصورت زیر نوشتم:
var result = await query.Select(x => new Models.Output.Piping.LineJoints.LineJoint2
{
Id = x.Id,
JointNo = x.JointNo
})
.ToListAsync();
حالا برای اینکه از تکرار جلوگیری کنم، یک Extension Method نوشتم که کار تبدیل رو انجام بده:
public static class Ext
{
public static Models.Output.Piping.LineJoints.LineJoint2 ToModel(
this Domain.Entities.Piping.LineJoints.LineJoint domain)
{
return new Models.Output.Piping.LineJoints.LineJoint2
{
Id = domain.Id,
JointNo = domain.JointNo
};
}
}
در نهایت Query را بصورت زیر تغییر دادم:
var result = await query.Select(x => x.ToModel()).ToListAsync();
سوال:
در حالت اول که تمام ستون ها را تعریف میکنم، بانک اطلاعاتی دقیقا همان ستون ها را بر میگرداند ولی در حالتی که از Extension Methodاستفاده کردم، بانک اطلاعاتی تمامی ستون ها را بر می گرداند و در سمت Client تبدیل انجام می شود. آیا راهی وجود داره که بتونم از نوشتن نام تمام ستون ها همانند نمونه اولیه جلوگیری کنم و از نام یک کلاس و یا چیزی شبیه Extension استفاده کنم؟ تشکر