我今天一直在努力使用linq2sql dbml设计文件。当我开始将我的桌子放在设计师身上时,一切都很好。我修改名称空间并关闭数据上下文的连接字符串属性。然后我想创建我的linq实体的部分扩展。所以我在文件设计器上点击了F7。在这一点上,一切都很酷。然后,当我使用DB的模式更改某些内容时,我返回并添加另一个表或删除并重新添加旧表,MyContext.dbml会丢失其下的MyContext.design文件。另外2个(.cs和.layout仍在那里)。当然,它打破了我需要从头开始的一切。很烦人。有任何想法吗?
答案 0 :(得分:1)
啊!是!你正在使用VS2008,对吧?
这是一个众所周知的错误,实际上您的using
指令位于partial
类的 一半的位置实际上很重要......
using Foo;
namespace Bar {
// ...
}
很糟糕,并且破坏了设计师档案......
namespace Bar {
using Foo;
// ...
}
很好!
当您拥有SomeName.dbml
和SomeName.cs
时,此仅适用,因此另一个修复方法是重命名该文件。这已在VS2010中修复。疯了,是吗?
答案 1 :(得分:0)
您应该将您的课程保存在单独的文件/文件中。 C#编译器并不关心部件的位置,因此这是一个简单的解决方法。
此外,如果您将类编写到生成的文件中(在帖子中不是很清楚),那么这不是错误,而是期望的行为。