【问题标题】:How To Use Entity Data Model In Class Library如何在类库中使用实体数据模型
【发布时间】:2013-10-24 13:04:33
【问题描述】:

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

【问题讨论】:

  • 您是否尝试使用using-block?
  • 不知道怎么用
  • 听说过LinqToEntities
  • 使用 LinqToEntities,我需要先创建一个对象,对吗?所以我这样做了 - objContext...我是否需要添加更多引用、命名空间

标签: c# asp.net entity-framework-4


【解决方案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());
      }
}

【讨论】:

  • 将其放入有效的方法中。我现在可以访问对象属性,即使没有“使用”。非常感谢。
  • 很高兴为您提供帮助。你应该看看 LinqToEntities,在我看来它不难理解并且很好处理。
【解决方案2】:

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

public Test
{
tb....
}

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 2011-02-20
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 2023-03-29
    • 2016-04-04
    • 1970-01-01
    • 2017-10-04
    相关资源
    最近更新 更多