Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在类库中使用实体数据模型_C#_Asp.net_Entity Framework 4 - Fatal编程技术网

C# 如何在类库中使用实体数据模型

C# 如何在类库中使用实体数据模型,c#,asp.net,entity-framework-4,C#,Asp.net,Entity Framework 4,我使用实体数据模型成功地将数据保存到Sql Server数据库,如下所示: MEDIANEntities db = new MEDIANEntities(); tblCountry objTable = new tblCountry(); objTable.Name= txtName.Text.Trim(); objTable.CreatedDate = System.DateTime.Now; db.AddTotblCountries(objTable); db.SaveChanges();

我使用实体数据模型成功地将数据保存到Sql Server数据库,如下所示:

MEDIANEntities db = new MEDIANEntities();
tblCountry objTable = new tblCountry();
objTable.Name= txtName.Text.Trim();
objTable.CreatedDate = System.DateTime.Now;
db.AddTotblCountries(objTable);
db.SaveChanges();
现在的想法是在类库中使用EDM,这样就可以在其他项目中使用它(基本上是一种分层体系结构)。我创建了一个类库--“MedianContext”,然后在其中创建了一个新的edmx文件--“MedianModel”。然后是另一个类库——“MedianDAL”。添加了对MedianContext的引用

无法访问objcontext和tb的属性。我怎样才能更进一步呢。 如果有帮助的话,在添加对MedianDAL的引用时,MediaContext.dll位于调试文件夹而不是发布文件夹中,如许多示例所示


可能是因为您试图在类的上下文中访问属性?为此类创建构造函数并从中访问属性:

public Test
{
tb....
}

您用
LINQ2
试过了吗?
例如:

try
{
    using (var medianEntities = new MedianModel.MEDIANEntities())
    {
          //Do any LinqToEntity-Expressions
    }
}
catch(Exception)
{ 
    //ErrorHandling
}
这对我很有用。 我在另一个项目中也有我的.edmx文件,只是添加了对它的引用

编辑:

当然,您必须将此代码放入方法体中。
下面是一个简单的例子:

public List<Map> GetAllMaps()
{
    var Maps = new System.Collections.Generic.List<Map>();

    try
    {
         using (var mapEntities = new Model.MapEntities())
         {
              var MyMaps= (from M in mapEntities.Maps
                               orderby M.Description
                               select M.MapID, M.Description);

             foreach (var Map in MyMaps)
             {
                   Maps.Add(Map);
             }
          }
          return Maps;
      }
      catch (System.Exception Exc)
      {
          Log.Err(string.Format("Error: {0}", Exc));
          throw new System.Exception(Exc.ToString());
      }
}
public List GetAllMaps()
{
var Maps=new System.Collections.Generic.List();
尝试
{
使用(var mapEntities=new Model.mapEntities())
{
var MyMaps=(来自mapEntities.Maps中的M)
orderby M.描述
选择M.MapID,M.Description);
foreach(MyMaps中的var映射)
{
地图。添加(地图);
}
}
返回地图;
}
捕获(System.Exception Exc)
{
Log.Err(string.Format(“Error:{0}”,Exc));
抛出新的System.Exception(Exc.ToString());
}
}

您是否尝试使用
使用
-block?不知道如何使用听说的
LinqToEntities
?使用LinqToEntities,我需要首先创建一个对象,对吗?所以我这样做了-objContext…我是否需要添加更多引用,名称空间将其放入一个有效的方法中。我现在可以访问对象属性,即使没有“使用”。非常感谢。很高兴能帮助你。你应该看看Linqtoeties,在我看来,它不难理解,也很好处理。