1) Классы, созданные Entity Framework, используют ключевое слово partial
.Это означает, что вы можете легко расширять их и не беспокоиться о генерации кода, стирая ваши изменения.
Итак, допустим, EF генерирует: public partial class Customer
Что вы можете сделать, это определить другой файл .cs с именемCustomer_Partial.cs (просто мое личное предпочтение именования), а затем сделайте что-то вроде:
public partial class Customer : IMySharedInterface
{
}
Затем ваши страницы просмотра используют:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IMySharedInterface>" %>
и затем получают доступ к свойствам вашей модели в строго типизированном видеway.
2) Я думаю, это вызвано тем, что вы передаете IQueryable в ваше представление.Не уверен, хотя.С этим решением вам не придется беспокоиться об этом.