Hil*_*lmi 1 asp.net entity-framework asp.net-mvc-3
我有两个简单的模型,有一对多的关系
public class X{
public int id {get;set;}
public virtual Y y{ get; set; }
public string description{get;set;}
}
public class Y{
public int id{get;set;}
public string name{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
从实体框架我设置了关系
我正在尝试提交一个创建X具有现有Y价值的新记录的表单
从表单返回到动作的数据是string description和y_id.
当我尝试从参数指定对象时的操作
public ActionResult sth(X x){}
Run Code Online (Sandbox Code Playgroud)
将x.y被设置为null(预计...),而当我尝试以下...
x.y = (from i in Y where i.id == that_id select i).first();
...
db.saveChanges();
Run Code Online (Sandbox Code Playgroud)
实体框架将新Y记录插入数据库......
我知道我做错了什么......你的帮助将非常感激!
查看代码,您有x和y的ID,x中的虚拟Y. 除了x中的虚拟Y,您还需要引用y的id.与y中的x的虚拟ICollection一起.
public class X{
public int x_id {get;set;}
public int y_id {get;set}
public virtual Y y{ get; set; }
public string description{get;set;}
}
public class Y{
public int y_id{get;set;}
public string name{get;set;}
public virtual ICollection<X> X {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这有助于实体关系.您可能还希望将y(s)列表传递给负责表单的控制器,除非您已经从表单上的下拉列表中选择了y值.
| 归档时间: |
|
| 查看次数: |
255 次 |
| 最近记录: |