如何避免在表中输入值,只是信息表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表中添加了一行。但这两个表只是信息表,因此我希望它们是静态的。我想要的只是储备一个客户。

你能帮我一下吗?

感谢您的帮助

如何避免在表中输入值,只是信息表asp.net mvc

如果你有一个未附加的对象作为虚拟属性,这就是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上下文