1

我有以下代码使用 linq to entity 更新我的表。

它需要两个参数,一个是字符串和字符串列表。我的 linq 查询使用 \r\n 更新列。

我期待我的字符串列表(HoursByRate)有一到五个值。

例如,如果我的字符串列表只有一个值,在这种情况下,我可以将其余的 (HoursByRate2 -5) 分配为空白空间吗?或者

写一个单独的方法来满足这个逻辑?

 string HoursByRate1 = HoursByRate[0].ToString();
 string HoursByRate2 = HoursByRate[1].ToString();//assign empty if no value
 string HoursByRate3 = HoursByRate[2].ToString();
 string HoursByRate4 = HoursByRate[3].ToString();
 string HoursByRate5 = HoursByRate[4].ToString();
var query = 
// var querySEVTs =
    from SEVTs in db.SEVTs
    where
    SEVTs.SESID == BookingSesid
    select SEVTs;
foreach (var SEVTs in query)
{
    SEVTs.USER3 = (HoursByRate1 + SqlFunctions.Char(10) + SqlFunctions.Char(13) + HoursByRate2 + SqlFunctions.Char(10) + SqlFunctions.Char(13) + HoursByRate3 + SqlFunctions.Char(10) + SqlFunctions.Char(13) + HoursByRate4 + SqlFunctions.Char(10) + SqlFunctions.Char(13) + HoursByRate5 + SqlFunctions.Char(10) + SqlFunctions.Char(13));
}
db.SaveChanges();
;
4

3 回答 3

2

你不应该首先遇到这个问题 - 重新考虑你的数据库模式:

使用在用户表上有外键和单个小时费率的表(例如“hourlyRates”)。每个用户(或您的主表是什么)可以有多行,在您的情况下为一到五。要获取给定用户的所有小时费率,您可以根据用户 ID 将用户表与 hourlyRate 表连接起来。

于 2013-02-12T03:54:11.673 回答
1
string value = string.Empty;
for (int i = 0; i < 5; i++)
       {
           string str = " ";
           if (i < HoursByRate.Count())
               str = HoursByRate[i];
           value += str + ((char)10).ToString() + ((char)13).ToString();
       }

foreach (var SEVTs in query)
{
    SEVTs.USER3 = value;
 }
于 2013-02-12T04:56:42.553 回答
0

您是否尝试执行 String.Join 方法的功能?

SEVTs.USER3 = String.Join(SqlFunctions.Char(10) + SqlFunctions.Char(13), HoursByRate)
于 2013-02-12T05:04:52.190 回答