我想使用默认的Identity 2提供程序构建N-tire Web应用程序。因此,我的数据层包含带有模型定义的纯c#类,没有任何externad依赖。但是,如果不添加AspNet.Identity引用,就无法将某些类链接到我的应用程序用户。
我试图创建User类的接口:
- name: Create cron jobs to send emails
cron:
name="Send emails"
state=present
special_time=daily
job="/home/testuser/deployments/{{ item }}/artisan --env={{
item }} send:healthemail"
with_items:
- london
- toronto
- vancouver
在Infrastructure层中将其替换为实现:
public interface ISystemUser
{
string Id { get; set; }
string Title { get; set; }
}
public class Place
{
public int Id { get; set; }
public string Address { get; set; }
public ISystemUser User { get; set; }
}
但实体框架不会在实体之间建立关系。
是否有任何'权利'如何实现这个或者添加引用是必要的吗?
答案 0 :(得分:1)
有一种解决方法,在我看来非常难看但有效。
您需要2个课程,一个用于User
,另一个用于ApplicationUser
。 ApplicationUser
必须具有User
的所有属性。像这样:
//Domain Layer
public class User
{
public string Id { get; set; }
public string Title { get; set; }
}
//Infrastructure Layer
public class ApplicationUser
{
public string Title { get; set; }
}
现在,诀窍是将User
类映射到ApplicationUser
类的同一个表。像这样:
public class UserConfig : EntityTypeConfiguration<User>
{
public UserConfig()
{
HasKey(u => u.Id);
ToTable("AspNetUsers");
}
}
希望它有所帮助!