Tag: entity framework

如何忽略默认的EntityData属性?

我正在使用Entity Framework创建MVC mobile application service 我创建了一个Entity Model如下所示: public class Regions : EntityData { public string Id { get; set; } public string Name { get; set; } } 我已经创建了一个TableController所以我通过发出一个get请求来查询: http://localhost:3000/tables/Regions 这会返回错误说: “exceptionMessage”:“无效的列名’Id’。\ r \ n无效的列名>’版本’。\ r \ n无效的列名’CreatedAt’。\ r \ n无效的列名’UpdatedAt’。”, 查看EntityData类,我可以看到这些是EntityData类的属性: public abstract class EntityData : ITableData { protected EntityData(); [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Index(IsClustered = true)] […]

用户具有系统角色 – 如何(对象)模型三元关系?

我有以下实体: Privilege ( Id, Name ) Role ( Id, Name, ICollection ) System ( Id, Name ) User ( Id, Name, Pass, ? ) 现在我想建模“一个用户可能拥有零个或多个系统中的每一个零个或多个角色”,例如: IDictionary<System, ICollection> SystemRoles { get; set; } 这是否可以使用ASP.NET EntityFramework? 如果有,怎么样? 我必须设置什么属性? 一直在寻找相当长的一段时间,但是我没有在网上找到任何有用的“entity framework代码第一个三元关系” 你能指点我一些很好的链接吗? 或者也许给我一个提示如何建模/我可以把哪些属性放在字典上? 其他问题:如果IDictionary解决方案以某种方式工作,是否有任何更改以获得更改跟踪代理性能? IDictionary不是ICollection …

MVC 3 – 如何实现服务层,我需要存储库吗?

我目前正在使用EF Code First,SQL CE和Ninject构建我的第一个MVC 3应用程序。 我已经阅读了很多关于使用存储库,工作单元和服务层的信息。 我想我已经完成了基础知识,并且我已经完成了自己的实现。 这是我目前的设置: 实体 public class Entity { public DateTime CreatedDate { get; set; } public Entity() { CreatedDate = DateTime.Now; } } public class Profile : Entity { [Key] public Guid UserId { get; set; } public string ProfileName { get; set; } public virtual ICollection Photos { get; […]

将多个实体插入到多对多链接表中

我的Web应用程序在Station和Timetable实体之间具有多对多链接,并且链接它们的实体称为StationTimetable ,它还保存有关两个实体之间链接的数据。 当我创建一个新的Timetable ,我想在数据库中创建新的(和多个) StationTimetable条目以对应这个新的Timetable 。 到目前为止,我已经设法让应用程序在用户创建新的时间表时只保存一个StationTimetable条目。 我有点理解为什么会这样,并且我试图修改它以保存多个条目,但是我现在正在知道这个砖墙。 所以,我有一个TimetablesCreateViewModel ,它是我的视图使用的模型: public class TimetablesCreateViewModel { public Timetable Timetable { get; set; } public IEnumerable StationTimetables { get; set; } public Station Station { get; set; } public SelectList StationList { get; set; } } 在我看来,我让用户最多插入10个StationTimetable条目: @for (var i = 0; i < 10; i++) { @Html.DropDownListFor(model […]

我无法更新我的edmx,因为实体数据模型设计器无法打开它

大家好,感谢您花时间看我的问题。 我正在使用Entity Framework 6和asp.net MVC运行VS 2017,并且必须向我的某个实体添加一些字段。 我在数据库中添加了相应的字段,但是当我打开edmx文件时,没有显示消息“实体数据模型设计器无法打开此文件”。 它建议我在XML编辑器中打开它,但是当我右键单击XML文件时,我没有“从数据库更新模型”选项。 有人知道是什么原因造成的吗?

LINQ条件Where子句不起作用

使用:MVC 5,C#,VS 2013,EF6和CodeFirst,SQL Server 2012 我已经尝试了四种不同的方式来获取数据而没有任何问题。 IQueryable qryResults = _db.vw_Results; 我遇到的问题是我有13个filter选项,所有13个的代码遵循相同的逻辑: string fmVal = string.Empty; if (!string.IsNullOrEmpty(form[“Locations”])) { fmVal = form[“Locations”].ToString(); qryResults = qryResults.Where(w => w.LOCATION.CompareTo(fmVal) == 0); } if (!string.IsNullOrEmpty(form[“ddActionLevels”])) { //qryResults = qryResults.Where(w => w.PAL_ID==form[“ddActionLevels”].ToString()); vbVal = form[“ddActionLevels”].ToString(); ; //qryResults = qryResults.Where(w => w.AL == vbVal); qryResults.Where(w => w.AL.CompareTo(vbVal) >= 0); } if […]

我无法从表中填充DropDownList。 EF和MVC4

我相信这会在我的HomeController中创建一个列表。 但不确定是什么调用它或它在Controller旁边的位置可能是第一个Add ActionResult(GET方法)。 public static IEnumerable items() { using (oesacEntities_compact db = new oesacEntities_compact()) { var query = from s in db.tblSponsors select new { s.SponsorID, s.BizName }; return query.AsEnumerable() .Select(x => new SelectListItem { Value=x.SponsorID.ToString(), Text = x.BizName }).ToList(); } } 我似乎无法将其发送到添加视图或从添加视图引用它: @Html.DropDownListFor(model => model.SponsorID,IEnumerable SelectList); 在其他编码语言中似乎很简单。 我想填充一个下载大约有200个赞助商ID的下拉值,BizNames用于文本。 至少现在。 当我想要显示具有所选值的编辑视图时,上帝帮助我。 谢谢你的stackoverflow

MySql连接器6.8.2 RC,entity framework6和代码优先

我最近升级到Entity Framework 6并安装了MySql 6.8.2 RC Connector,因为它表示现在支持EF6 Code First。 请记住,在升级之前,我的项目在连接器6.7.4和EF 5中运行良好。 我对web.config进行了以下更改 我还添加了以下引用(.net 4.5版本) MySql.Data MySql.Data.Entity.EF6 MySql.Web 问题是 – 代码调用我收到的DBContext的那一刻: Object reference not set to an instance of an object. 再次 – 请记住,升级之前一切正常,所以我知道它不是代码问题,但是,我可能没有正确设置web.config? 另外 – 您可能会问,如果在升级之前它运行良好,为什么要升级? 好吧,据说EF6和新的MySql连接器解决了我遇到的一些错误 – 所以我希望现在实现它,而它在开发中,当它转移到生产(几个月后)我应该能够加载6.8.x连接器的生产版本。 这是堆栈跟踪,以防它有用 [NullReferenceException: Object reference not set to an instance of an object.] MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(DbConnection connection) +85 System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) […]

复制具有层次结构的模型

我的模型看起来像这样: Company -Locations Locations -Stores Stores -Products 所以我想制作公司的副本,并且还应该将其所有关联复制并保存到数据库中。 如果我将公司加载到内存中,我该怎么做? Company company = DbContext.Companies.Find(123); 如果它很棘手,我可以遍历每个关联,然后调用创建一个新对象。 Id会有所不同,但其他一切都应该是一样的。 我使用的是EF 6。

使用HTTP Post从Excel中插入SQL Server数据库中的数据

我想在Excel中单击“插入”按钮时将数据插入SQL Server数据库。 数据在单元格A2和B2中,这里是excel中“插入”按钮背后的代码: Dim HttpReq As New WinHttp.WinHttpRequest HttpReq.Open “POST”, “http://localhost:11121/Student/Insert/”, False HttpReq.Send “jsmith112” 这是我在VS中的Controller操作的代码: [HttpPost] public ActionResult Insert(string id) { try { student.AddToStudents(id); student.SaveChanges(); return RedirectToAction(“Index”); } catch { return View(); } } 这似乎没有用,有人能引导我完成这个吗? 提前致谢