问题在代码中的第一条评论中定义, 我应该在这里设置什么值,所以在try块中我可以设置另一个值
var candidate_MNA = // what value should I set here so in try block I can set another value
try
{
candidate_MNA =
(from c in db.ms_cadidate
join h in db.ms_halqa
on c.candidate_halqa_id equals h.halqa_id
join p in db.ms_party
on c.candidate_party_id equals p.party_id
where h.halqa_id == SessionWrapper.user.user_halqa_id && c.candidate_type == "1"
select new
{
candidate_id = c.candidate_id,
halqa = h.halqa_no,
fname = c.candidate_fname,
party = p.party_name,
partyFlag = p.party_flag,
}).FirstOrDefault();
}
答案 0 :(得分:6)
不,你不能这样做是因为var
从表达式的右侧解析了它的类型。您可以做的是使用您需要的属性创建DTO
:
public class CandidateDTO
{
public int candidate_id {get;set;}
public int halqa {get; set; }
.............
............
}
然后在你的linq查询中使用该类型对象:
select new CandidateDTO
{
candidate_id = c.candidate_id,
halqa = halqa_no,
..............
..............
}
现在您使用try
之外的变量,如:
CandidateDTO candidate_MNA = null;
答案 1 :(得分:-6)
这是可能的,但很麻烦:
mt-5
我建议您通过更改定义或使用var candidate_MNA = new
{
candidate_id = default(int),
halqa = default(int),
fname = default(string),
party = default(string),
partyFlag = default(PartyFlag)
};
的位置来做得更好。