Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 模型-分部类和Datacontext类不通信_Asp.net Mvc_Datacontext_Partial Classes - Fatal编程技术网

Asp.net mvc 模型-分部类和Datacontext类不通信

Asp.net mvc 模型-分部类和Datacontext类不通信,asp.net-mvc,datacontext,partial-classes,Asp.net Mvc,Datacontext,Partial Classes,我创建了一个单表联系人数据库,它只有3列(Id、Name和Phone)。然后,我使用model文件夹中的表联系人创建了联系人DataContext。最后,我在model文件夹中创建了一个分部类(public partial class Contact) 现在当我写这个的时候 public partial class Contact { public string MyContact { get { string name

我创建了一个单表联系人数据库,它只有3列(Id、Name和Phone)。然后,我使用model文件夹中的表联系人创建了联系人DataContext。最后,我在model文件夹中创建了一个分部类(public partial class Contact

现在当我写这个的时候

public partial class Contact
{
    public string MyContact
    {
        get 
        {
            string name = this.Name ?? String.Empty; 
        }
        // ... Other lines omitted
    }
}
我收到以下错误:“'ContactsManager.Models.Contact'不包含'名称'的定义,并且找不到接受类型为'ContactsManager.Models.Contact'的第一个参数的扩展方法'名称”(是否缺少using指令或程序集引用?)

有什么不对劲吗???即使是Intellisense也无法显示DataContext类中的属性。然而,我过去写过一些局部类,没有问题


谢谢。

两个部分的名称空间是否相同?

Chris Roden

是的,我已经解决了。事实上,我在几个月前开始学习ASP.NETMVC时就提出了上述问题。我买了一本名为“ASP.NET MVC-啤酒屋/Nick Berardi/Wrox.”的书,这是一本神书,但初学者不推荐。一般来说,事情都是这样扔的,不知道它们从哪里来

响应来自应用分部类的定义。除其他外,部分类必须:

  • 同名
  • 前面加上“partial”关键字
  • 在同一命名空间中定义
  • 等等
如果您错过了上述任何一个条件,那么您将遇到麻烦,因为这些条件将用于将所有分部类合并为唯一的分部类

在我的例子中,我创建了一个名为ContactDB的表。创建datacontext类之后,我在Linq2Sql编辑器上删除了ContactDB表。您必须知道,这将创建以下类:

public partial class ContactDB
{
  //All the columns in the table become properties in this class
} 
partial关键字允许我这样写:

public partial class ContactDB
{
  //I can reference members of the above partial class... using this keyword
  //After all, the 2 constitute one class.
} 
在阅读了部分类的定义之后,我发现我没有通过其中一个标准。我将我的另一个部分类称为“Contact”,这与ContactDB不同。这足以让我疯狂3天,直到我读到定义。此外,如果使用正确的名称定义分部类,但将其放在不同的命名空间中,也会遇到麻烦

因此,如果上面的答案不适用于你(我不知道你的问题),请检查。不要忘记阅读


希望有帮助。

我刚刚检查了两个类是否具有相同的名称空间(名称空间ContactsManager.Models)