Я пытаюсь реализовать веб-систему с возможностью многократного использования, в которой источник данных для модели может быть изменен по желанию. Что мне нужно, так это универсальный тип вместо того, чтобы полагаться на тип, сгенерированный либо LINQ, либо сущностями.
В этом руководстве рассматривается разделение для обеспечения высокой возможности повторного использования, но что произойдет, если представление данных между сущностями и LINQ изменится очень незначительно? Тогда вам придется изменить вид. Гарантируются ли классы, сгенерированные LINQ и сущностями, одинаковыми, когда они передаются в представление? Можно ли создать класс / интерфейс, который обычно представляет данные?
Пример
namespace Intranet.Areas.Accounts.ViewModels
{
using Intranet.Areas.Accounts;
using System.Collections.Generic;
using Intranet.Areas.Accounts.Models;
public class ContractsControlViewData
{
public IEnumerable<Contract> Contracts { get; set; }
public IEnumerable<tblCC_Contract_CC> tblCC_Contract_CCs { get; set; }
public IEnumerable<tblCC_Contract_Data_Terminal> tblCC_Contract_Data_Terminals { get; set; }
public IEnumerable<tblCC_CDT_Data_Service> tblCC_CDT_Data_Services { get; set; }
public IEnumerable<tblCC_Data_Service> tblCC_Data_Services { get; set; }
}
}
Приведенный выше код взят из небольшого проекта, который я тестирую. Обратите внимание, что у меня есть типы, начинающиеся с "tbl". Я только что перетащил их из базы данных в конструктор LINQ, и я использую их в этом контейнере, который передается в представление для последующей визуализации нескольких наборов результатов на экране.
Проблема в том, что если я откажусь от LINQ и вместо этого буду использовать сущности, будут ли данные отражаться так же, как и типы, представленные здесь? Будет ли Contract
все еще действительным? Имейте в виду, что эти типы в предыдущем примере кода генерируются LINQ. Насколько они последовательны, если вы используете другую технологию доступа к данным?
Вот почему мне интересно, должны ли мы для разделения интересов и обеспечения согласованности данных вместо этого создавать собственные классы для последовательного представления данных.
У меня болит мозг, кто-то спас меня от себя.