在我的存储过程中proc1
:
IF (condition1)
BEGIN
SELECT * FROM table1
END;
ELSE IF (condition2)
BEGIN
SELECT * FROM table2
END;
但是在designer.cs
中,我只看到一个proc1Result
类,其中只有14个属性类似table1
中的14列。表2的23列无法作为属性或字段找到。因此,当满足condition2
时,
ISingleResult<proc1Result> results = datacontext1.proc1(parameter);
foreach (proc1Result item in results){
resultList.Add(
new model2{
// no property to set here
}
);
}
如何将Table2
的列添加到proc1Result
类?
答案 0 :(得分:0)
您需要返回包含两个表中列的结果。 这样的事情(但是如果它们具有相同的&#34;名称&#34;对于某些列,您将必须列出所有列以避免重复/创建别名):
IF (condition1)
BEGIN
SELECT t1.*,t2.*
FROM table1 t1, table2 t2
-- return no results from t2, fieldname can never be null
WHERE t2.fieldname != t2.fieldname
END;
ELSE IF (condition2)
BEGIN
SELECT t1.*,t2.*
FROM table1 t1, table2 t2
-- return no results from t1, fieldname can never be null.
WHERE t1.fieldname != t1.fieldname
END;
答案 1 :(得分:0)
proc1Result
将保存两个模型的属性,因此当第一个条件执行时,第二个属性将被忽略,反之亦然。
Class proc1Result {
//properties for table1
//properties for table2
}
Class model1{
//properties for table1
}
Class model2 {
//properties for table2
}
ISingleResult<proc1Result> results = datacontext1.proc1(parameter);
foreach (proc1Result item in results){
resultList.Add(
new model2{
item.propertyname //which is there in both model2 and proc1result
}
);
}