0

如何将此 SQL 转换为 LINQ?

我现在正在阅读它,但只是把它放在那里以防我做不到。

        SqlConnection connection = new SqlConnection
        {
            ConnectionString = ConfigurationManager.ConnectionStrings["HBOS"].ConnectionString
        };

        connection.Open();

        foreach (ExchangeRateData x in exchangeRateDatas.ExchangeRateDataList)
        {
            SqlCommand cmd = new SqlCommand("UPDATE dbo.CurrencyExchange " +
                                            "SET Rate = '" + x.Rate + "', DateTimeStamp = CAST('" + x.TimeStamp +
                                            "' AS DATETIME), CreatedBy = '" + x.CreatedBy + "', RateInv = '" +
                                            x.RateInv + "' " +
                                            "WHERE Currency = '" + x.ToCurrency + "';", connection);
            // Sql query and connection
            cmd.ExecuteNonQuery();
        }

        connection.Close();
4

2 回答 2

3

创建dbcontext第一个

然后

CurrencyExchange CurrencyExchangeObject = context.CurrencyExchange
                                         .Where(a => a.Currency = x.ToCurrency)
                                         .FirstOrDefault();

之后,您可以简单地分配值,例如

CurrencyExchangeObject.Rate = x.Rate;
CurrencyExchangeObject.DateTimeStamp  = Convert.ToDateTime(x.TimeStamp);

然后简单地说

context.SaveChanges();
于 2014-04-22T16:13:43.303 回答
0

听起来您的老板正在寻找 LINQ to SQL 实现。不幸的是,您的问题没有一个快速的答案,因为添加此功能需要的不仅仅是“将查询转换为 LINQ”,因为设置您的环境以支持它需要做很多事情。

您可能想从该主题的一些基本谷歌搜索开始:

第一对结果:

http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx http://msdn.microsoft.com/en-us/library/bb386976 (v=vs.110).aspx

LINQ to SQL 有一个使用更广泛的表亲,称为实体框架,它不依赖于 SQL Server。您可能也需要考虑这一点。

于 2014-04-22T16:13:51.370 回答