나는 DbSets 모의 쓰기를 마치고 이와 같은 일련의 코드를 작성했습니다.일반 메서드 추출
int rowCount = 0;
var maxOrderId = EntityContainer.Set<Order>().Max(a => a.Id);
var newOrders = EntityContainer.Set<Order>().Where(a =>a.Id == 0);
foreach (var order in newOrders)
{
order.Id = ++maxOrderId;
rowCount++;
}
var maxServiceId = EntityContainer.Set<Service>().Max(a => a.Id);
var newServices = EntityContainer.Set<Service>().Where(a => a.Id == 0);
foreach (var service in newServices)
{
service.Id = ++maxServiceId;
rowCount++;
}
이 목록에는 더 많은 항목이 있습니다. 이들을 일반적인 방법으로 추출 할 수있는 방법이 있습니까? 같은 뭔가 :
int GenerateID<Order>();
내가 dynamic
를 사용하여 시도,하지만 컴파일러는 역학은 람다 식에 사용할 수 없습니다 뿌려줍니다.
interface IItem
{
int Id { get; set; }
}
GenerateId
방법은 다음과 같을 것이다 :
int GenerateID<T>(int rowCount) where T : IItem
{
var maxId = EntityContainer.Set<T>().Max(a => a.Id);
var newItems = EntityContainer.Set<T>().Where(a => a.Id == 0);
foreach (T item in newItems)
{
item.Id = ++maxId;
rowCount++;
}
return rowCount;
}
편집
하는 방법에 대해 당신은 당신의 객체가 같은 인터페이스를 구현 보장해야
를 사용하지만, 당신이하십시오 자체 구현을 시작하기 전에 https://github.com/tamasflamich/effort를 확인 했습니까? –