Расширение класса модели структуры сущности по умолчанию для включения пользовательского класса - PullRequest
0 голосов
/ 14 марта 2011

У меня есть сущностная модель, в которую добавлено несколько таблиц из моей БД.Я хочу включить пользовательский класс, который будет действовать как модель данных и будет возвращать настроенные данные.Вот что я пытаюсь сделать:

// My custom data model
public class DataModel
{
    var dbContext = new ODataDemoEntities();

    Employees = from e in dbContext.Employee
                select new EmployeeModel
                {
                    ID = e.EmployeeID,
                    FirstName = e.FirstName,
                    LastName = e.LastName
                };

    public IQueryable<EmployeeModel> Employees { get; private set; }
}

// My custom class
[DataServiceKey("ID")]
public class EmployeeModel
{
    /// <summary>ID of the employee.</summary>
    public int ID { get; set; }

    /// <summary>First name of the employee.</summary>
    public string FirstName { get; set; }

    /// <summary>Last name of the employee.</summary>
    public string LastName { get; set; }
}

// My WCF Data Service Code
public class EmployeeDataService : DataService<DataModel>
{
    // This method is called only once to initialize service-wide policies.
    public static void InitializeService(DataServiceConfiguration config)
    {
        config.SetEntitySetAccessRule("Employees", EntitySetRights.AllRead);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
    }
}

Однако я хочу включить этот класс Employees в свой существующий класс модели данных сущностей, чтобы вместо создания отдельной службы с другой моделью данных я расширил свою существующую.модель данных для включения моего пользовательского класса (EmployeesModel).

1 Ответ

1 голос
/ 14 марта 2011

Почему вы хотите предоставить настраиваемый вид существующей сущности?Клиент может сделать это в любом случае и настроить их так, как он хочет, используя проекции.Запрос на стороне клиента будет в точности похож на тот, который написан выше для инициализации свойства Employees.

В настоящее время нет способа сделать это.Мы ищем способы сделать это в следующем выпуске.Хотя никаких обещаний нет, но есть одна из вещей, о которой нас спрашивали несколько раз, и она довольно высока в нашем списке поступлений.

Используйте этот сайт для голосования, чтобы проголосовать за эту функцию: http://blogs.msdn.com/b/astoriateam/archive/2010/09/10/what-do-you-want-to-see-added-changed-in-wcf-data-services.aspx

Спасибо, Пратик

...