0

我的 SQL Server 数据库包含几个视图,这些视图本质上是某些表的过滤 (WHERE) / 排序 (ORDER BY) 版本,即没有连接。

一个例子是我的下载表,它有一个视图,例如DownloadsOnlineOnly ,例如

SELECT * FROM Downloads WHERE Live = 1 ORDER BY FolderName ASC;

我可以将这些视图拖放到我的 LINQ to SQL DataContext 上,并使用 LINQ 查询这些视图并检索数据……

但是我的 DataContext 中没有提取外键关系,所以我失去了以下能力:

Dim dl as DownloadOnlineOnly = (From r in db.DownloadOnlineOnlies Select r).First

Dim fol as Folder = dl.Folder ' Syntax error as there is no association between 

                              ' DownloadOnlineOnly and Folder in my DataContext.

我理解为什么会发生这种情况,但我该如何解决这个问题:

  • 无需在我的 DataContext 中手动添加关联?
  • 我可以更改实体的类型,例如更改 DataContext 上 SP 的返回类型吗?
  • 我可以在 DownloadOnlineOnly 对象和 Download 对象之间转换或转换吗?
  • 还是别的什么方法?

抱歉,如果这是一个微不足道的问题,我对 LINQ 比较陌生。

PS 我正在使用 SQL Server 2008 R2 数据库进行开发。

4

1 回答 1

1

您必须手动将它们连接起来。你无能为力。只是感谢你没有使用 EF,因为 EF 对视图的支持更糟。它假定任何非空字段都是复合主键的一部分。

于 2012-06-25T23:47:32.547 回答