有兩張表 F、P
F表字段有 id,nm
P表字段有 id,ds,fi (其中 fi 對應表 F 的 id)我現在想得到這樣一個結果,用Sql是這樣寫
select P.id,
P.ds,
P.fi,
F.nm
from P left join F on P.fi=F.id我做了個例子用“繼承”來實現,不知道是否合理一、先寫兩個Model,對應上面的兩個表
class F
{
public F()
{ } public F(SqlDataReader reader)
{
_id=reader ["id"].ToString();
_nm = reader["nm"].ToString(); ;
} private string _id;
private string _nm;
/// <summary>
///
/// </summary>
public string id
{
get { return _id; }
}
/// <summary>
///
/// </summary>
public string nm
{
get { return _nm; }
} }public class P
{
public P()
{ } public P(SqlDataReader reader)
{
_id = reader["id"].ToString();
_ds = reader["ds"].ToString();
_fi = reader["fi"].ToString();
} private string _id;
private string _ds;
private string _fi;
/// <summary>
///
/// </summary>
public string id
{
get { return _id; }
}
/// <summary>
///
/// </summary>
public string ds
{
get { return _ds; }
}
/// <summary>
///
/// </summary>
public string fi
{
get { return _fi; }
}
}
二、然後寫一個子類P2,繼承自 P
public class P2 : P
{
public P2(SqlDataReader reader)
: base(reader)
{
F f = FL.GetOne(base.fi);//獲取關聯表F的信息
_nm = f.nm;
} private string _nm; public string nm
{
get
{
return _nm;
}
}
}我想問的是,這樣寫P2,是否合理?非常感謝!
解决方案 »
- C#数据结构
- textarea 赋值问题
- .net调用JAVA带SoapHeader验证的WebService问题
- 用sql 存储过程!!在C#窗体做一个简单的登陆!!急!
- socket 问题 求助高手啊 求代码
- 如何在窗体之间传值?在线等.......
- 一个c#.net初学者的问题
- 一个问题搞了 一个星期了,大家给看下
- vs中的水晶报表控件比如fieldobject如何根据内容多少的改变相应控件边框也发生改变
- 要调用c++ dll,但有std::map ,shared_ptr这样的参数,好麻烦
- ado.net能不能实现adodb里面的addnew、update方法?
- ◆简单的字符串取值问题◆
{
//属性与访问器
}class F
{
//表中的属性与访问器
private P _p;
public P MyP
{
get{return this._p;}
set{this._p=value;}
}
直接用参数比较清晰一些直接用參數的構造函數我寫了,隻是沒貼上來而已每一表Model有三個構造函數public P()
{ }public P(string id)
{-id=id;}public P(SqlDataReader reader)
{
}