1

我正在开发 Visual C# MVC 项目。我在我的模型中使用数据库优先方法。我的项目是关于开发一个用户可以购买应用程序的应用市场。我在主页中使用了局部视图,它将在不同的局部视图中包含不同应用程序的详细信息。例如第一个局部视图中的 App1,第二个局部视图中的 App2,依此类推。为此,我使用了 foreach 循环。

在每个局部视图中都有一个名为 MoreInfo 的链接,因此当用户单击该链接时,他们将进入 MoreInfo 页面。在数据库中,我有应用信息、应用成本、描述等字段,这些字段将显示在 MoreInfo 页面中。所有这些字段都在一个名为 Apps 表的表中。

我的问题是如果我在 MoreInfo 页面中使用 forach 循环,那么我会从数据库中获取每条记录的信息。更清楚地说,在数据库中,我有两条用于描述字段的记录,分别称为“描述 1”和“描述 2”。如果我使用 foreach 循环,那么它会显示两个视图,一个用于描述 1,另一个用于同一页面中的描述 2。我想要的是第一个 MoreInfo 页面中第一个应用程序的描述和第二个 MoreInfo 视图中的第二个描述,依此类推。
有人可以帮我吗?谢谢..

4

3 回答 3

1

假设您使用的是实体框架: Enumerable.FirstOrDefault 将为您执行此操作。您可以将其加载到 TSource 类型中。

这是一个链接:http: //msdn.microsoft.com/en-us/library/bb340482.aspx

var someobj = db.someEnumerable.FirstOrDefault(x => // Condition);
于 2013-08-06T17:33:57.300 回答
1

如果您使用 LINQ to SQL 或 EF,您可以FirstOrDefault()继续调用,这将返回第一个值或在大多数情况下为 null(引用类型的默认值)。如果您使用 SQLConnection 之类的东西或调用存储过程,只需将您的更改SELECT ... FROMSELECT TOP 1 .... FROM

于 2013-08-06T17:35:56.437 回答
0

您应该根据您的情况使用 Linq 获取一条记录。尝试这样的事情(这只是向您展示逻辑的代码,因为我们不确定您使用了哪些变量)。

var result=(from x in dbContext.TableName where column==variable select x).FirstOrDefault()

我希望它会有所帮助。

于 2013-08-06T17:41:25.027 回答