我有一个LINQ2SQL查询用于检索ID(PK,而不是null)。这是查询:
int masterEntityID;
int payeeID;
int chargePayeeID;
try
{
using (TestDataContext os = new TestDataContext())
{
string entityName = tbSearch.Text;
var getMasterID = from r in os.Entities
where r.Name == entityName
select r.ID;
masterEntityID = getMasterID.First(); //this is working FINE!
var getPayeeID = from pid in os.Entities
where pid.Name == entityName
select pid.Payee_ID;
payeeID = getPayeeID.First(); //This is giving me an err: Cannot implicitly convert type 'int?' to 'int'. An explicit conversion exists (are you missing a cast?)
};
两种数据类型:ID和Payee_ID都是int。但是ID是Pkey而Payee_ID不是!
如何从getPayeeID获取payeeID的值?谢谢!
答案 0 :(得分:3)
getPayeeID.First().GetValueOrDefault()
答案 1 :(得分:2)
如果你确信Payee_Id永远不会为null,那么只需输出值:
payeeID = (int)getPayeeID.First();
答案 2 :(得分:1)
答案 3 :(得分:1)
您可以使用FirstOrDefault()或将payeeID声明为int吗?然后根据需要使用它(如果它为null,你应该尝试做任何事情......)
答案 4 :(得分:-1)
您的实体的Payee_ID属性似乎可以为空,因为它代表数据库中的可空列。所以,你不应该在int中接收不可为空的值。你可以在nullable int中获得它的值,如。
int? payeeID = payeeID = getPayeeID.FirstOrDefault();
或
var payeeID = payeeID = getPayeeID.FirstOrDefault();
稍后您可以使用
检查payeeID值是否为nullif(payeeID.HasValue)
{
int x = payeeID.Value; //Value property of nullable int is an integer value and accessing it would through exception if HasValue property is false
}