亚音速 3 InnerJoin

发布于 2024-08-02 07:25:52 字数 542 浏览 3 评论 0原文

我不知道该怎么做。我希望将两个表的列连接在一起,这样我就可以显示与外来 ID 位于同一行的名称,而不是仅仅返回外键。

我做了类似的事情,但我不断收到有关主键的错误:

SqlQuery test = db.Select.From().InnerJoin(filesTable.file_typeColumn, filetypesTable.filetype_idColumn).Where(filesTable.file_typeColumn).IsEqualTo(filetypesTable.filetype_idColumn) );

无法决定考虑哪个属性作为密钥 - 您可以创建一个名为“ID”的属性或使用 SubSonicPrimaryKey 属性标记一个属性 描述:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.InvalidOperationException:无法决定考虑哪个属性作为密钥 - 您可以创建一个名为“ID”的属性或使用 SubSonicPrimaryKey 属性标记一个属性 有什么建议么?

I am not sure how to go about this. I am looking to join columns of two tables together so that instead of just getting a foreign key back, I can display a name that is on the same row as the foreign id.

I did something like this but I kept getting an error about my primary key:

SqlQuery test = db.Select.From().InnerJoin(filesTable.file_typeColumn, filetypesTable.filetype_idColumn).Where(filesTable.file_typeColumn).IsEqualTo(filetypesTable.filetype_idColumn);

Can't decide which property to consider the Key - you can create one called 'ID' or mark one with SubSonicPrimaryKey attribute
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Can't decide which property to consider the Key - you can create one called 'ID' or mark one with SubSonicPrimaryKey attribute
Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心凉怎暖 2024-08-09 07:25:52

以下内容应该可以满足您的需求:

SqlQuery test = db.Select()
  .From<filesTable>()
  .InnerJoin<filetypesTable>()

您还可以使用 SubSonic 的 Linq 实现来完成此操作:

var fileIdsAndTypeds = from files in filesTable.All() 
  join types in filesTypes.All() 
    on types.filetype_idColumn equals files.filetypeColumn
  select files;

The following should get you what you want:

SqlQuery test = db.Select()
  .From<filesTable>()
  .InnerJoin<filetypesTable>()

You could also do this using SubSonic's Linq implementation:

var fileIdsAndTypeds = from files in filesTable.All() 
  join types in filesTypes.All() 
    on types.filetype_idColumn equals files.filetypeColumn
  select files;
肥爪爪 2024-08-09 07:25:52

由于某种原因,它一直返回空值。

我最终这样做了:

DBDB db = new DBDB();
        SqlQuery Files = db.SelectColumns(filetypesTable.filetype_idColumn, filetypesTable.filetype_nameColumn,
            filesTable.purpose_idColumn, filesTable.page_idColumn, filesTable.file_idColumn, filesTable.file_descriptionColumn,
            filesTable.file_nameColumn, filesTable.file_pathColumn, filesTable.file_typeColumn, filesTable.file_dateColumn)
                .From<file>()
                .InnerJoin<filetype>(filesTable.file_typeColumn, filetypesTable.filetype_idColumn);

List<file> fileList = Files.ExecuteTypedList<file>();

它似乎返回第一个表上的实际列的列表,然后在该集合中是另一个包含来自连接表的数据的列表....现在要弄清楚如何让它工作使用 DataBind 和自定义 Gridview 列...

For some reason that just kept returning a null.

I ended up doing this:

DBDB db = new DBDB();
        SqlQuery Files = db.SelectColumns(filetypesTable.filetype_idColumn, filetypesTable.filetype_nameColumn,
            filesTable.purpose_idColumn, filesTable.page_idColumn, filesTable.file_idColumn, filesTable.file_descriptionColumn,
            filesTable.file_nameColumn, filesTable.file_pathColumn, filesTable.file_typeColumn, filesTable.file_dateColumn)
                .From<file>()
                .InnerJoin<filetype>(filesTable.file_typeColumn, filetypesTable.filetype_idColumn);

List<file> fileList = Files.ExecuteTypedList<file>();

It seems to return a list of the actual columns on the first table and then inside of that collection is another one with the data from the joined table.... now to figure out how to get that to work with DataBind and custom Gridview columns...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文