我在 ORM (Bltoolkit) 中以字符串格式使用 sql。我不喜欢在不需要的情况下使用 Linq,因为
- 复杂的查询很难用 Linq 构建。没有足够的资源来使用 Linq 构建复杂的查询。
- 通过将字符串 sql 与 ORM 结合使用,您仍在改进 sql 查询的实践。否则你会中断查询(我想 Linq 不会改进你的 sql 查询)。
- 您仍然可以使用绑定参数保护您的查询免受 sql 注入的影响。
你有什么想法?这是一个好习惯吗?
下面是在没有 Linq 的情况下使用 ORM(对我来说是 BlToolkit)的示例:
var db = new Veritabani("HstConn");
try
{
var sorgu = @"select t.tcno ""KullaniciAdi"", t.ad ""Ad"", t.soyad ""Soyad"", t.kurum_kodu ""KurumKodu"",
t.ilkodu ""IlKodu"", t.kurum_turu ""KurumTuru"", t.e_posta ""Eposta"", t.dogrulama_kodu ""DogrulamaKodu""
from saglikcalisanlari t
where tcno = :kullaniciAdi
and sifre = :sifre";
return db.SetCommand(sorgu,
db.Parameter(":kullaniciAdi", kullaniciAdi.Trim()),
db.Parameter(":sifre", sifre.Trim().Md5Hash())).ExecuteObject<SaglikCalisani>();
}
catch (Exception exc)
{
throw new Exception("Veritabanı Hatası: " + exc.Message);
}
finally
{
db.Close();
db.Dispose();
}