需要BLToolKIT到实体框架的帮助



我正在创建一个检查产品密钥的方法。在bltoolkit中一切正常工作的代码是

private void CheckKey()
{
try
{
using (DbManager db = new DbManager())
{
DataTable dt = db
.SetCommand("SELECT TOP 1 * FROM TblReg WHERE ProductKey=@ProductKey",
db.Parameter("@ProductKey", CommanClass.strRegkey))
.ExecuteDataTable();
if (dt.Rows.Count == 0)
{
GetSoftKey = false;
strSoftKey = null;
}
else
{
strSoftKey = dt.Rows[0].Field<string>("ProductKey");
GetSoftKey = true;
}
}
if ((GetSoftKey == true) && (strSoftKey != null))
{
if (strSoftKey == CommanClass.strRegkey)
{
SoftwareKey = true;
}
else
{
SoftwareKey = false;
}
}
}
catch (Exception)
{
SoftwareKey = false;
}
}

现在,当我尝试使用实体框架来编写检查产品键的方法时,我对如何将数据表变量DataTable dt = login传递到实体上下文中并设置实体查询参数login.Parameter("@ProductKey", CommanClass.strRegkey)感到困惑,代码是

private void CheckKey()
{
try
{
using (loginEntities login = new loginEntities())
{
var pKey= from pk in login.tblSoftRegs 
where pk.ProductKey == pk.ProductKey 
select pk.ProductKey.FirstOrDefault();

if (pKey.Count() == 0)
{
GetSoftKey = false;
strSoftKey = null;
}
else
{
strSoftKey = ("ProductKey");
GetSoftKey = true;
}

}
if ((GetSoftKey == true) && (strSoftKey != null))
{
if (strSoftKey == CommanClass.busRegkey)
{
SoftwareKey = true;
}
else
{
SoftwareKey = false;
}
}
}
catch (Exception)
{
SoftwareKey = false;
}
}

等待社区贡献…

差不多了。如果没有找到,FirstOrDefault将返回null,并且您将本地变量直接绑定到LINQ查询中。这样的:

var pKey= from pk in login.tblSoftRegs 
where pk.ProductKey == CommanClass.strRegkey
select pk.ProductKey.FirstOrDefault();
if (pKey == null)
{
GetSoftKey = false;
strSoftKey = null;
}
else
{
strSoftKey = ("ProductKey");
GetSoftKey = true;
}

相关内容

  • 没有找到相关文章

最新更新