1
A
回答
1
当然可以,但你必须为LINQ2SQL生成的属性应用相同的属性,即
[Association(Name="Test_TestData", Storage="_TestDatas", ThisKey="SomeId", OtherKey="OtherId")]
public System.Data.Linq.EntitySet<TestData> MyTestDatas
{
get
{
return this.TestDatas;
}
}
TestDatas是原来的关系。
更新:样本查询我跑:
var context = new DataClasses1DataContext();
var tests =
from d in context.Tests
where d.MyTestDatas.Any(md=>md.MyId == 2)
select new
{
SomeId = d.SomeId,
SomeData = d.SomeData,
Tests = d.MyTestDatas
};
foreach (var test in tests)
{
var data = test.Tests.ToList();
}
2
如果您只是想为关联属性赋予不同的名称,只需使用关联的属性页面并重命名父项和/或子项属性即可。这将改变该类中的EntityRef/EntitySet的名称。
编辑:在部分班级使用一个单独的属性的缺点是,LINQ将无法生成查询时使用它 - 本质上,你将被迫总是实体才可以使用对象上的相关属性。通过重命名,您允许LINQ在构建查询时使用相关属性,从而实现更高效的查询。例如,如果您想要获取相关实体具有特定属性值的实体,那么使用属性装饰实体将允许LINQ生成SQL以仅从数据库中提取这些匹配值。使用朴素的属性实现(只是引用底层的关系属性,实际上是重命名它),您将被迫首先获取所有实体,然后在应用程序中执行过滤。
相关问题
- 1. LINQ 2 SQL:部分类
- 2. 实体部分类中的属性
- 3. 链接2不填充部分类属性的实体
- 4. 分配给类似的命名实体属性
- 5. Linq 2 Sql实体中自动计算的属性?
- 6. 重命名属性或在实体框架中提供别名?
- 7. LINQ to SQL实体列名称属性忽略与GUID主键
- 8. Symfony窗体类:重命名字段名称属性的值
- 9. LINQ to SQL通过投影字符串选择属性名称
- 10. 实体框架(CTP5,Fluent API)。重命名导航属性
- 11. LInq到SQL - 部分类 - C#
- 12. 实体框架 - 通过属性更新
- 13. Symfony 2覆盖实体字段属性
- 14. 通过linq获取重写属性的属性表达式
- 15. 通过绑定到GridView的LINQ查询无法访问的部分类属性
- 16. 通过父类名获取属性值
- 17. 通过属性重新命名变量(JavaScript)
- 18. LINQ to SQL中 - 重命名列名
- 19. 通过子实体上的属性过滤聚合根实体和子实体
- 20. Linq to实体导航属性
- 21. 重复属性的实体模型类属性错误
- 22. 在实体框架设计器中显示部分类属性
- 23. 重命名SimpleXMLElement键/属性
- 24. 重命名ActiveResource属性
- 25. Json.net重命名属性
- 26. 对象属性重命名
- 27. 分组通过匿名类型比较的参考不属性
- 28. 通过实体框架扩展属性自动生成类
- 29. 使用linq 2实体性能下降
- 30. LINQ到实体列命名从
这不是一个可行的方法。当我重新生成模型时,这些更改被覆盖:( – 2009-04-12 14:56:10
+1这是一个实用的方法。Linq2sql没有重新生成模型按钮,在设计器中进行更改是其中的一部分。在你的问题上的信息 – eglasius 2009-04-12 14:59:10