我创建了一个表联系人DB,它只有3列(Id,Name和Phone)。然后,我使用模型文件夹中的表格“联系人”创建了 ContactsDataContext 。最后,我还在模型文件夹中创建了一个局部类(公共部分类联系)。
现在我写这个
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类的属性。然而,我过去写了一些不成问题的部分课程。
谢谢。
答案 0 :(得分:1)
两个部分名称空间是否相同?
答案 1 :(得分:0)
Chris Roden,
是的,我已经解决了。事实上,几个月前,当我开始学习ASP.NET MVC时,我已经问过上面的问题了。我买了一本名为“ ASP.NET MVC - The Beer House / Nick Berardi / Wrox。”的书。是一本神书,但对初学者来说并不值得推荐。通常情况下,事情会被抛出,而不会告诉他们来自何处。
响应来自应用部分类的定义。除其他外,部分类必须:
如果您错过了上述任何一个标准,那么您将遇到麻烦,因为这些标准将用于将所有部分类合并为唯一的部分类。
就我而言,我创建了一个名为 ContactDB 的表。在我创建了datacontext类之后,我在Contact 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.
}
在阅读部分类的定义后,我发现我没有达到其中一个标准。我打电话给我的另一个部分课程“联系”,这与ContactDB不同。这足以让我疯狂3天,直到我读到这个定义。此外,如果您使用正确的名称定义了部分类,但是将它放在不同的命名空间中,那么您也会遇到麻烦。
因此,如果上述答案对您不起作用(我不确切地知道您的问题),请查看definition of the partial class。不要忘记阅读ScottGu's series on Linq2Sql。
希望它有所帮助。