如何使用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.
}
提前致谢
答案 0 :(得分:0)
首先,您需要一个界面
public interface IPosition {
public int ID {get ;}
public Latitude {get; set;}
public Longitude {get; set;}
}
制作课程Vehicle,Building实现界面。
以下是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
}