Entity Framework核心关系问题
Entity Framework Core Relationship Problem
我想为用户创建个人待办事项时创建的1-N关系如下。
public class TaskApp
{
public string Topic { get; set; }
public string Description { get; set; }
public bool IsCompleted { get; set; }
public string UserAppId { get; set; }
}
public class UserApp:IdentityUser
{
public string NameSurname { get; set; }
public ICollection<TaskApp> TaskApps { get; set; }
}
这里发生的事情是我没有在 TaskApp 文件夹中显示用户 table,我只是将其指定为 UserAppId.
我想添加TaskApp的时候,也是去UserAppId里面带上登录用户的claim name这边
如何在我的 类 中显示此内容?
在 EF Core 中使用 two-way 导航没有任何问题,因此我相信您可以使用以下实体:
public class TaskApp
{
public string Topic { get; set; }
public string Description { get; set; }
public bool IsCompleted { get; set; }
public string UserAppId { get; set; }
// Adding this reference is not a bad practice
public UserApp UserApp { get; set; }
}
public class UserApp : IdentityUser
{
public string NameSurname { get; set; }
public ICollection<TaskApp> TaskApps { get; set; }
}
现在您可以使用 .Include
并按以下方式导航:
context.TaskApp.Include(x => x.UserApp);
或者如果您需要按任何条件过滤:
context.TaskApp.Include(x => x.UserApp.Where(q => q.IsCompleted == true);
我想为用户创建个人待办事项时创建的1-N关系如下。
public class TaskApp
{
public string Topic { get; set; }
public string Description { get; set; }
public bool IsCompleted { get; set; }
public string UserAppId { get; set; }
}
public class UserApp:IdentityUser
{
public string NameSurname { get; set; }
public ICollection<TaskApp> TaskApps { get; set; }
}
这里发生的事情是我没有在 TaskApp 文件夹中显示用户 table,我只是将其指定为 UserAppId.
我想添加TaskApp的时候,也是去UserAppId里面带上登录用户的claim name这边
如何在我的 类 中显示此内容?
在 EF Core 中使用 two-way 导航没有任何问题,因此我相信您可以使用以下实体:
public class TaskApp
{
public string Topic { get; set; }
public string Description { get; set; }
public bool IsCompleted { get; set; }
public string UserAppId { get; set; }
// Adding this reference is not a bad practice
public UserApp UserApp { get; set; }
}
public class UserApp : IdentityUser
{
public string NameSurname { get; set; }
public ICollection<TaskApp> TaskApps { get; set; }
}
现在您可以使用 .Include
并按以下方式导航:
context.TaskApp.Include(x => x.UserApp);
或者如果您需要按任何条件过滤:
context.TaskApp.Include(x => x.UserApp.Where(q => q.IsCompleted == true);