![](/img/trans.png)
[英]How can i write SQL update query with where clause in Entity Framework in C#
[英]C# entity framework fromsqlraw query with includes (in) instead of where clause
varname 使此查詢工作的正確語法是什么? 我可以讓它與單個變量一起工作,例如
string varname = "TOTAL_NORWAY"
但是,如果我想在其中包含一些變量,則會返回一個空數組:
string varname = "'TOTAL_NORWAY', 'TOTAL_SWEDEN'";
return await _Context.theDataModel.FromSqlRaw(@"
select data
from data_table
where Variable in ({0})
", varname).ToListAsync();
請記住,您可以將FromSqlRaw
與 Linq 結合使用:
string varnames = new [] { "TOTAL_NORWAY", "TOTAL_SWEDEN" };
var query = _Context.theDataModel.FromSqlRaw(@"
select data
from data_table");
query = query.Where(x => varnames.Contains(x.Variable));
// Add more where clauses as needed
return await query.ToListAsync();
ErikEJ 的帖子非常有幫助。 對於不經常涉足 EF Core 的人來說,解決方案並不是那么簡單。
我還有一個額外的 where 子句需要考慮,對於其他想知道的人來說,這是這樣做的。
var items = new int[] { 1, 2, 3 };
var parameters = new string[items.Length];
var sqlParameters = new List<SqlParameter>();
for (var i = 0; i < items.Length; i++)
{
parameters[i] = string.Format("@p{0}", i);
sqlParameters.Add(new SqlParameter(parameters[i], items[i]));
}
sqlParameters.Add(new SqlParameter("@userid", "userXYZ123"));
var rawCommand = string.Format("SELECT * from dbo.Shippers WHERE ShipperId IN ({0}) and userid = {1}", string.Join(", ", parameters), "@userid");
var shipperList = db.Set<ShipperSummary>()
.FromSqlRaw(rawCommand, sqlParameters.ToArray())
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.