首页 新闻 会员 周边

EF 一对一修改的问题?

0
悬赏园豆:20 [已关闭问题] 关闭于 2014-07-04 11:17
public class Game
    {
        [Key]
        public Guid Id { get; set; }

        [DisplayName("游戏名称")]
        [Required(ErrorMessage = "{0}不能为空")]
        public string Name { get; set; }


        [DisplayName("添加时间")]
        public DateTime AddDate { get; set; }

        public ICollection<GameZone> GameZones { get; set; }
    }
public class GameZone
    {
        [Key]
        public Guid Id { get; set; }

    public Guid GameID{get;set} [DisplayName(
"游戏名称")] public Game Game { get; set; } [DisplayName("游戏区名称")] [Required(ErrorMessage = "{0}不能为空")] public string Name { get; set; } }
public ActionResult Edit([Bind(Include = "Id,Name,Game,AddDate")] GameZone gamezone)
        {
            
            if (ModelState.IsValid)
            {
                gamezone.Game = _db.Games.Find(gamezone.Game.Id);
                gamezone.AddDate = DateTime.Now;
                _db.Entry(gamezone).State = EntityState.Modified;
                _db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(gamezone);
        }        

在编辑的时候

ModelState.IsValid 永远是false,还有就算我把if注释掉
gamezone.Game这里的数据怎么修改都不会变。
浪潮之巅的主页 浪潮之巅 | 初学一级 | 园豆:83
提问于:2014-06-25 15:12
< >
分享
所有回答(3)
0

复杂类型,貌似不会自动更新进去。你可以直接对Game进行更新啊。

幻天芒 | 园豆:37175 (高人七级) | 2014-06-25 16:27

我是说GameZone里面的Game_Id 不能更改

支持(0) 反对(0) 浪潮之巅 | 园豆:83 (初学一级) | 2014-06-25 17:21

@浪潮之巅: Game_Id在哪儿?

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-06-25 19:58

@幻天芒: public Game Game { get; set; }这个关联,数据库中的GameZone表自动会生成Game_Id

支持(0) 反对(0) 浪潮之巅 | 园豆:83 (初学一级) | 2014-06-25 21:28

@浪潮之巅: EF又不知道,看你的实体,并没有外键关系。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-06-26 13:29
0

ModelState.IsValid 永远是false说明服务的验证失败

gamezone.Game这里的数据怎么修改都不会变。说明没有拿到对象值怎么能修改成功呢,

把需求说详细点说不定有人会解答

名字什么都是浮云 | 园豆:327 (菜鸟二级) | 2014-06-25 18:37

gamezone.Game = _db.Games.Find(gamezone.Game.Id);这条数据就是获取Game

支持(0) 反对(0) 浪潮之巅 | 园豆:83 (初学一级) | 2014-06-25 21:29
0

建议抓一下 数据库中生成的sql语句 就明白真像了

Zery | 园豆:6151 (大侠五级) | 2014-06-25 19:16

sql 语句只修改Name字段。

支持(0) 反对(0) 浪潮之巅 | 园豆:83 (初学一级) | 2014-06-25 21:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册