【问题标题】:Database Question (LINQ-to-SQL)数据库问题 (LINQ-to-SQL)
【发布时间】:2011-08-03 20:41:59
【问题描述】:

我目前正在开发一个网站,我们可以在该网站上为客户跟踪小型活动。我正在使用 linq-to-sql 和 asp.net 来构建它。到目前为止,该站点非常小,大约 10 页,只有 2 个表、事件和客户端。我在下面列出了每个表的列:

Events:
-eventid
-eventname
-datecreated
-details
-datedue
-status
-clientname (this should be clientid)
-sentemail

Clients:
-clientid
-clientname
-clientemail
-clientphone

我遇到的问题是让 2 个数据库表* 一起工作。理想情况下,我希望在 Events 表中将 clientname 替换为 clientid。

我之前是这样设置的,但在列出事件时遇到了问题:

当我列出事件时,我希望它显示客户端名称与客户端 ID 相对应。不幸的是,我对 ASP.net 还是很陌生,虽然我可以在 PHP 中轻松做到这一点,但不知道如何让它工作。这不是什么大不了的事,但我希望能够彼此更新客户端列表和事件。

对不起,如果这几乎没有意义,如果有任何混淆,我会尝试更好地措辞。

*本人更正

【问题讨论】:

  • 表格是否存储在不同的数据库中?我对“我遇到的问题是让 2 个数据库一起工作......”这句话感到困惑 如果事件和客户端是 1 个数据库中的两个数据库表,那么解决方案很简单。
  • 您能否添加任何关于您所尝试的确切内容以及您所经历的与您希望发生的不同的信息?
  • 它们是 2 个不同的数据库还是单个数据库中的 2 个不同的表
  • 对不起只有1个数据库2个表,我不知道我为什么这么说,一定是昨晚很晚>

标签: asp.net linq-to-sql


【解决方案1】:

一旦你的数据库标准化,创建一个 Linq2Sql 上下文,然后你可以编写一个类似的查询(获取事件名称及其客户端名称的列表):

var results = from e in dbContext.Events join c in dbContext.Clients on e.clientid equals c.clientid select new { e.eventname, c.clientname };

【讨论】:

  • 感谢您的回复,一旦我完成将其设置回使用 ID,我将尝试此操作
【解决方案2】:

除了 Andrew Lewis 的回答之外,您还需要:

1) 将 clientid 字段添加到事件表中

2) 运行 sql 查询来填充 clientid 字段:

update events set clientid = (select clientid from client where name = events.clientname)

3) 从事件表中删除 clientname 字段

【讨论】:

  • 感谢您的回复,这应该会使切换回更容易
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多