Я, должно быть, делаю что-то действительно неправильно, так как это выглядит как очень простое расширение, которое вызывает ошибку при попытке скомпилировать код.
Итак ... у нас есть таблица клиентов, и в этой таблице у нас есть Customer_ID. Мы храним только идентификатор клиента, а остальные данные поступают из центра поддержки клиентов.
Ссылка на эту таблицу Customer и создает объект Entity Customer, когда мы генерируем EDMX-файл нашей сущности.
Мы берем этот идентификатор клиента и получаем остальную информацию о клиенте из службы WCF, которая является нашим центром правдивости клиента. Это возвращает имя, возраст и тому подобное.
Итак ... мы хотим расширить существующую сущность Customer этими дополнительными свойствами, однако мы «сохранили» их в нашей базе данных Customer.
Следовательно, мы создали Частичный класс для расширения нашего Entity Customer следующим образом:
namespace UsingRIAServices.Web.Models
{
public partial class Customer
{
public string Name { get; set;}
public int Age { get; set;}
}
}
Это не сработало, и при сборке вы получите следующую ошибку.
Сущность «UsingRIAServices.Web.Models.Customer» имеет свойство «CustomerReference» с поддерживаемым типом.
Итак ... если вы зайдете в Customer.Designer.cs, вы увидите это свойство
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[BrowsableAttribute(false)]
[DataMemberAttribute()]
public EntityReference<Customer> CustomerReference
{
blah, blah
}
И обратите внимание на тип Customer в EntityReference, который теперь является расширенным классом с нашим частичным.
Итак ... Я добавил [Datamember] к каждому элементу в нашем частичном классе ... та же ошибка. Я попытался [исключить] его и получил ту же ошибку.
Почему то, что кажется таким простым и прямым, таким трудным. Пожалуйста, помогите нам понять, как расширить частичный класс сущности. Вы можете сделать это с данными, которых нет в таблице?
Спасибо