【发布时间】:2011-09-22 05:09:51
【问题描述】:
假设你有一个看起来像这样的架构
Foo
FooId
Bar
BarId
SomeFooId // Foreign key to Foo.FooId
AnotherFooId // Foreign key to Foo.FooId
我希望能够做这样的事情:
Bar bar = ...
DoSomethingWith(bar.SomeFoo);
DoSomethingElseWith(bar.AnotherFoo);
但是,linq-to-sql 设计器不会生成SomeFoo 和AnotherFoo 属性,而是生成Foo 和Foo1。不清楚Foo 和Foo1 中的哪一个指的是SomeFoo,哪个指的是AnotherFoo。有什么方法可以手动为这些属性指定名称,以便我可以将它们称为SomeFoo 和AnotherFoo?
我在 Visual Studio 2010 中使用 dbml 设计器,我在使用 Visual Studio 2008 时遇到了同样的问题。
【问题讨论】:
-
因此,当您查看 dbml 文件时,您会看到正确的名称,但是当您查看 .designer.cs 并查看生成的部分类时,您会看到与列名不同的东西吗?跨度>
-
@esastincy:不,与列名直接对应的属性名称是正确的。有
SomeFooId和AnotherFooId属性。但我想要SomeFoo和AnotherFoo(实际项目,而不是id)。如果您只有一个项目是Foo的外键(即,如果您有SomeFooId但没有AnotherFooId),则此方法有效。但是,一旦您对同一个表有多个外键,属性名称就会变得混乱。
标签: c# .net visual-studio linq-to-sql code-generation