在涉及Asp.Net核心API和实体框架的项目中,我有以下实体:
public class A
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string Id { get; private set; }
[Required] public string Name { get; set; }
[Required] public B MyObj { get; set; }
}
public class B
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public string Id { get; private set; }
}
我的API有这个模型,它代表一个POST请求主体,用于创建新的A
:
public class A_Post
{
public string Name { get; set; }
public string Obj_Id { get; set; }
}
此处,Obj_Id
是指我希望B
具有A.MyObj
个实例的ID。
我想要做的是向A
添加一个方法,该方法从A
的实例创建A_Post
的实例。像这样:
public static A CreateFromPost(A_Post post)
{
var entity = new A();
entity.Name = post.Name;
// post.Obj_Id is accessible here, but cannot set entity.MyObj
return entity;
}
但是,我不确定如何让Obj_Id
拥有它所对应的实体,而不是从上下文中获取它。有没有办法做到这一点?或者我是否必须在程序中的其他位置设置MyObj
,可以访问上下文?