1

Я был вне C# и разработки на некоторое время так медведь со мной.Entity Framework код первые дополнительные столбцы

Есть Субъект класс List, как показано ниже:

public class List : EntityData 
{ 
    public int ListId { get; set; } 
    public string Name { get; set; } 
    public string UserId { get; set; } 

    public virtual List<ListItem> ListItems { get; set; } 
} 

Но соответствующая таблица, которая создается использует этот DDL с дополнительными колоннами. Зачем?

CREATE TABLE [dbo].[Lists] 
(
    [Id]  NVARCHAR (128)  DEFAULT (newid()) NOT NULL, 
    [ListId] INT    NOT NULL, 
    [Name]  NVARCHAR (MAX)  NULL, 
    [UserId] NVARCHAR (MAX)  NULL, 
    [Version] ROWVERSION   NOT NULL, 
    [CreatedAt] DATETIMEOFFSET (7) DEFAULT (sysutcdatetime()) NOT NULL, 
    [UpdatedAt] DATETIMEOFFSET (7) NULL, 
    [Deleted] BIT    NOT NULL, 

    CONSTRAINT [PK_dbo.Lists] PRIMARY KEY NONCLUSTERED ([Id] ASC) 
); 
+0

Показать класс 'EntityData' – zaitsman

ответ

3

Они не являются дополнительными, а определены Microsoft.Azure.Mobile.Server.EntityData.

Тех дополнительных полей служат для

Абстрактной реализацией интерфейса ITableData, указывающие, как система свойств для данной модели данных таблицы должны быть сериализовать при общении с клиентами при использовании Entity Framework для доступа к бэкэнд-магазин. Единая сериализация свойств системы гарантирует, что клиенты могут равномерно обрабатывать свойства системы на всех платформах. Конкретные модели фреймворка сущности могут быть получены из этого базового класса, чтобы поддерживать свойства системы.

0

Ваш базовый класс 'EntityData' либо реализовал интерфейс ITableData, либо имеет свои собственные свойства, подобные ITableData. Так что ваш код EntityData класс выглядеть следующим образом

public class EntityData : ITableData 
{ 
    public DateTimeOffset? CreatedAt { get; set; } 

    public bool Deleted { get; set; } 

    public string Id { get; set; } 

    public DateTimeOffset? UpdatedAt { get; set; } 

    public byte[] Version { get; set; } 
} 

Вы не получите дополнительные колонки при удалении принадлежности базового класса (EntityData) из списка класса модели.

Смежные вопросы