我是ASP.NET MVC代码的新手。首先,我实现了一个按类型划分表的层次结构,如下所示:
public abstract class Request
{
public int RequestId {gets;set;}
public DateTime CreationDate {get;set;}
public string CreatedBy {gets;set;}
public bool Active {Get;set;}
}
public class RequestChildA : Request
{
public string RequestChildAProp1 {get;set;}
public string RequestChildAProp2 {get;set;}
...
}
public class RequestChildB : Request
{
public string RequestChildBProp1 {get;set;}
public string RequestChildBProp1 {get;set;}
...
}
Request table
+---------------+-------------------------+------------+--------+
| RequestId | CreationDate | CreatedBy | Active |
+---------------+-------------------------+------------+--------+
| 1 | 2019-08-19 09:40:39.817 | HydroFlask | 1 |
+---------------+-------------------------+------------+--------+
RequestChildA table
+---------------+-------------------------+---------------------+
| RequestId | RequestChildAProp1 | RequestChildAProp1 |
+---------------+-------------------------+---------------------+
| 1 | ValueA | ValueB |
+---------------+-------------------------+---------------------+ChildA和ChildB可以共享相同的请求。我的问题是,如何将新的ChildB添加到具有现有ChildA的现有请求中。
我已经尝试了通常的方法:
var childB = new childB { RequestChildBProp1 = "Value1", RequestChildBPro2 = "Value2" };
childB.RequestId = 1;
db.RequestChildB.Add(childB);
db.SaveChanges();它在没有错误的情况下完成,但它创建了一个新请求。我需要一个新的ChildB,是与现有的相同的RequestId。请帮帮我!
我的设计可能是错的,请容忍我。谢谢!
发布于 2019-08-30 15:41:06
尝试以下未经测试的方法:
public class Request
{
public int RequestId {gets;set;}
public DateTime CreationDate {get;set;}
public string CreatedBy {gets;set;}
public bool Active {Get;set;}
}
public class RequestChildA
{
public string RequestChildAProp1 {get;set;}
public string RequestChildAProp2 {get;set;}
...
public virtual Request Request {get; set;}
}
public class RequestChildB
{
public string RequestChildBProp1 {get;set;}
public string RequestChildBProp1 {get;set;}
...
public virtual Request Request {get; set;}
}发布于 2019-08-30 15:46:05
我认为你需要像这样创建你的RequestChildA和RequestChildB:
public class RequestChildB
{
public virtual Request Request {get;set;}
public string RequestChildBProp1 {get;set;}
public string RequestChildBProp1 {get;set;}
}并像这样插入数据:
db.RequestChildB.Add(new RequestChildB
{
Request = db.Request.Find(1),
//...other properties
});
db.SaveChanges();https://stackoverflow.com/questions/57722399
复制相似问题