我有以下代码使用linq to entity更新我的表。
它需要两个参数,一个是字符串和字符串list.my 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();
;
答案 0 :(得分:2)
首先,您不应该遇到此问题 - 重新考虑您的数据库架构:
使用在您的用户表格上具有外键的表格(例如“hourlyRates”)和单小时费率。每个用户可以有多行(或者您的主表是多少),在您的情况下为1到5。要获得给定用户的所有小时费率,您可以根据用户ID将hourlyRate表加入用户表。
答案 1 :(得分: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;
}
答案 2 :(得分:0)
您是否尝试执行String.Join方法的操作?
SEVTs.USER3 = String.Join(SqlFunctions.Char(10) + SqlFunctions.Char(13), HoursByRate)