3

我成功地使用实体数据模型将数据保存到 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 位于调试文件夹而不是 Release 文件夹中,如许多示例中所示。

在此处输入图像描述

4

2 回答 2

1

你试过Linq2Entities吗?
例如:

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());
      }
}
于 2013-10-24T13:41:09.150 回答
0

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

public Test
{
tb....
}
于 2013-10-24T13:12:17.400 回答