Если класс явно не объявлен как производный от другого приведения, вы не можете примерить между ними. Даже если они имеют одинаковые свойства или поля.
class Data { public string Name { get; set; } public string Zip { get; set; } }
class AData { public string Name { get; set; } public string Zip { get; set; } }
Data data = new Data { Name = "Foo", Zip = "Bar" };
AData adata = (AData)data; // doesn't work
В этом случае вам нужен метод конвертации:
AData ToAData(Data data)
{
return new AData { Name = data.Name, Zip = data.Zip };
}
Не уверен, что в EF4 есть что-то, что поможет с этим.