LinQ To Sql

1.Database类: //用于指向数据库连接语句
    public class Database
    {
        public const string E2 = "E2";
    }
-------App.config------
<connectionStrings>
    <add name="E2" connectionString="Database=E2;Server=(local);Integrated Security=SSPI"
      providerName="System.Data.SqlClient" />
  </connectionStrings>


2.E2.dbml
[Function(Name="dbo.getLeafNamespace")]
public ISingleResult<getSystemNamespaceStructureResult> getLeafNamespace([Parameter(DbType = "NVarChar(64)")] string tenantID, [Parameter(DbType = "UniqueIdentifier")] System.Nullable<System.Guid> objectGuid, [Parameter(DbType = "NVarChar(5)")] string cultureID, [Parameter(DbType = "Bit")] System.Nullable<bool> byCulture)
  {
   IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), tenantID, objectGuid, cultureID, byCulture);
            return ((ISingleResult<getSystemNamespaceStructureResult>)(result.ReturnValue));
  }

[ResultType(typeof(getSystemNamespaceResult))]
[ResultType(typeof(getResourceResult))]
[ResultType(typeof(getToSystemNamespaceResult))]
public IMultipleResults getSystemNamespace([Parameter(DbType = "NVarChar(64)")] string tenantID, [Parameter(DbType = "UniqueIdentifier")] System.Nullable<System.Guid> objectGuid, [Parameter(DbType = "NVarChar(5)")] string cultureID, [Parameter(DbType = "Bit")] System.Nullable<bool> byCulture)
  {
   IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), tenantID, objectGuid, cultureID, byCulture);
            return ((IMultipleResults)(result.ReturnValue));
  }

2.BO:
using (var ctx = ContextManager<DalLinq.E2DataContext>.GetManager(DalLinq.Database.E2))
{     
  ctx.DataContext.addNamespace();
}

#region byGuid

                if (cultureID != string.Empty && criteria.ObjectGuid != Guid.Empty)
                {

                    IMultipleResults mr = ctx.DataContext.getNamespace(tenantID, criteria.ObjectGuid, cultureID, criteria.ByCulture);

                    if (criteria.ByCulture)
                    {
                        var systemNamespace = mr.GetResult<getToNamespaceResult>().Single();
                        Fetch(systemNamespace);
                    }
                    else
                    {
                        var systemNamespace = mr.GetResult<getNamespaceResult>().Single(); //会有多个结果集会被返回,要一个一个接受。按顺序!
                        var systemResources = mr.GetResult<getResourceResult>().ToArray();
                        Fetch(systemNamespace);
                        LoadProperty<NamespaceResources>(NamespaceResourcesProperty, NamespaceResources.GetNamespaceResources(systemResources));
                    }
                }
                #endregion

posted @ 2008-05-12 11:19  在林之州  阅读(128)  评论(0)    收藏  举报