EF Code First现有表

时间:2013-12-05 09:56:14

标签: c# sql entity-framework

我有一个资产表和一个客户端表。 当客户创建资产时,会为客户端创建一个外键。

现在我需要在资产中添加 CustomMetadata 。首先,我创建了一个名为 ClientMetadata 的表,如下所示:

CREATE TABLE [dbo].[CompanyMetadata](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ClientId] [nvarchar](128) NOT NULL,
    [TypeId] [int] NOT NULL,
    [Name] [varchar](255) NOT NULL,
    [DefaultValue] [varchar](255) NULL,
    [Values] [text] NULL,
    [Order] [int] NOT NULL,
    [Filter] [bit] NOT NULL,
 PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)
GO

ALTER TABLE [dbo].[ClientMetadata]  WITH CHECK ADD FOREIGN KEY([ClientId])
REFERENCES [dbo].[Clients] ([Id])
GO

ALTER TABLE [dbo].[ClientMetadata]  WITH CHECK ADD FOREIGN KEY([TypeId])
REFERENCES [dbo].[ClientMetadataTypes] ([Id])
GO

所以我现在需要的是一个名为CustomMetadata的表,它引用了资产 ClientMetadata ,但我不确定如何设置它,因为它会需要它自己的价值,EF在获得资产时需要吸引。

所以资产会有一个像

这样的导航属性
public virtual ICollection<CustomMetadata> Metadata { get; set; }

CustomMetadata 将如下所示:

public partial class ClientMetadata
{
    public int Id { get; set; }
    public string ClientId { get; set; }
    public int TypeId { get; set; }
    public string Name { get; set; }
    public string DefaultValue { get; set; }
    public string Value { get; set; }
    public int Order { get; set; }
    public bool Filter { get; set; }

    public virtual ClientMetadataTypes ClientMetadataTypes { get; set; }
    public virtual Asset Asset { get; set; }
}

将是资产存储的实际值。

有谁知道怎么做?

我希望这一切都有道理。

干杯,

/ r3plica

0 个答案:

没有答案