我成功地使用实体数据模型将数据保存到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文件夹中,如许多示例所示。
答案 0 :(得分:1)
您是否尝试过Linq2Entities
?
e.g:
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());
}
}
答案 1 :(得分:0)
可能是因为您正在尝试在课程的上下文中访问属性?为此类创建构造函数并从那里访问属性:
public Test
{
tb....
}