繁体   English   中英

EF6多对多表格,带有附加日期列

[英]EF6 many-to-many table with additional date column

我在数据库优先模式下使用表User来使用EF6。

我希望用户能够通过使用委托与其他用户共享其个人资料。 为此,我定义了一个具有两列的表UserDelegationIdUserIdDelegatedUser 到这里为止,一切都按预期进行。

现在,我想添加一列用于在UserDelegation表中存储日期。 问题是:我无法在UserDelegation实体中调用此属性,因为该实体UserDelegation不可见。 因此,我不知道在哪里可以找到我的新房产。

我想知道是否有解决此问题的方法或此体系结构是否错误?

这是我根据您的描述得到的-您可以尝试删除EDMX中的实体,然后尝试重新生成它。

我对您所说内容的解释:

DbContext

    public List<UserProfile> GetProfiles()
    {
        using (var ctx = new UserDatabaseEntities())
        {
            var ret = ctx.UserProfiles.Include("UserDelgations").Select(p => p).ToList();
            return ret;
        }
    }

的SQL

CREATE TABLE [dbo].[UserDelgations] (
[UserProfileId] UNIQUEIDENTIFIER NOT NULL CONSTRAINT FK_UserProfiles_UserProfileId FOREIGN KEY REFERENCES dbo.UserProfiles (Id) ON DELETE CASCADE,

[UserProfileDelgationId]            UNIQUEIDENTIFIER  NOT NULL,

[AuditDate]                         DATETIME NOT NULL default(getutcdate()),    

) Go

ALTER TABLE [dbo].[UserDelgations] ADD CONSTRAINT PK_UserDelgations PRIMARY KEY ([UserProfileId] ASC, [UserProfileDelgationId] ASC) GO

CREATE TABLE [dbo].[UserProfiles] (
Id uniqueidentifier NOT NULL constraint PK_UserProfiles primary key nonclustered (Id) constraint DF_UserProfiles_Id default(newid()),

UserName NVARCHAR(1024) NOT NULL,

CreatedBy          NVARCHAR(256) NOT NULL default(SYSTEM_USER),
CreatedDate        DATETIME NOT NULL default(getutcdate()), 

) Go

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM