Linq泛型方法
本文关键字:泛型方法 Linq | 更新日期: 2023-09-27 18:25:28
如何使用linq为具有不同命名法的表创建通用的Update方法。PS我只需要更新两个字段(两者都浮动),但它们的名称因表而异,表的id名称也因而异
假设我的DataContext:中有这些表
Person {ID(key), Name, X(float), Y(float)}
Vehicle {Code(key), Model, Latitude(float), Longitude(float)}
Building {Name(key), Model, Latitude1(float), Longitude1(float)}
*这些表是虚构的,但代表了我的场景。我不能更改表字段的名称,以实现标准命名。(我不制作数据库)
我需要在Linq中制作一个泛型方法。类似这样的东西:
public void UdpateCoordinates(tableName, idOfTable, fieldLatitude, fieldLongitude)
{
//And make a Update here of the fields (fieldLatitude, fieldLongitude).
//Example person would be fields X and Y the ones to update.
}
提前感谢
首先,您需要一个接口
public interface IPosition {
public int ID {get ;}
public Latitude {get; set;}
public Longitude {get; set;}
}
让你的类车辆,建筑实现接口。
以下是UdpateCoordinates方法的一个可能版本:
public void UdpateCoordinates<T>(IEnumerable<T> table, int ID, float latitude, float longitude ) where T: IPosition {
var entity = table.Where(x.ID == ID).FirstOrDefault();
if (entity != null){
entity.Latitude = longitude ;
entity.Longitude = longitude ;
}
//Save the entity here
}