如何避免在表中输入值,只是信息表asp.net mvc
本文关键字:信息 asp net mvc 何避免 输入 | 更新日期: 2023-09-27 18:14:39
我有一个模型客户端:
public class Client
{
public int ClientID
{
get;
set;
}
[Required]
public string compte
{
get;
set;
}
public int Restr_typeID
{
get;
set;
}
public virtual Restr_type1 Restr_type
{
get;
set;
}
和Restr_type也是一个模型:
public int Restr_type1ID
{
get;
set;
}
public string restr1_name
{
get;
set;
}
public int ActifID
{
get;
set;
}
public virtual Actif Actifs
{
get;
set;
}
我的问题是,当我在客户端表中添加一个客户端实例时,它还在Restr_types表和Actifs表中添加了一行。但这两个表只是信息表,因此我希望它们是静态的。我想要的只是储备一个客户。
你能帮我一下吗?感谢您的帮助
如果你有一个未附加的对象作为虚拟属性,这就是EF的工作方式。
基本上,如果你创建一个Client
的新实例,并使用一个不是你从EF获得的对象的引用填充Restr_type
属性,那么它将把Restr_type
属性视为具有新值,因此将其添加到DB并添加一个引用。
您要做的是使用EF查询数据库中的Restr_type
,并使用从中返回的引用。否则,当您在上下文中调用Add()
时,只需填充Restr_typeID
prop并将Restr_type
prop保留为空。
我希望这有意义。http://msdn.microsoft.com/en-us/data/jj592676.aspx这可以帮助您更好地理解EF上下文