asp.net mvc 1到很多保存帖子和上传文件

Joh*_*ado 0 asp.net-mvc entity-relationship linq-to-sql

我是asp.net mvc的新手.

我正在使用Linq到Sql并试图做松散耦合的一切.

我有两张桌子:

  1. 新闻
  2. NewsFiles

我要做的是保存新闻并同时上传文件.

如何与他的文件一起创建新闻,将其保存到NewsFiles表?

Linq to Sql模型没问题,它包含对象NewsFile到News对象.

我的新闻表的具体存储库类(葡萄牙语中的noticia):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MagixCMS.Models
{
    public class NoticiaRepository : INoticiaRepository
    {
        #region INoticiaRepository Members

        magixcmsEntities _entities = new magixcmsEntities();

        public noticia CreateNoticia(noticia noticiaToCreate)
        {
            _entities.AddTonoticiaSet(noticiaToCreate);
            _entities.SaveChanges();
            return noticiaToCreate;
        }

        public void DeletaNoticia(noticia noticiaToDelete)
        {
            var noticiaOriginal = GetNoticia(noticiaToDelete.Id);
            _entities.DeleteObject(noticiaOriginal);
            _entities.SaveChanges();
        }

        public noticia EditNoticia(noticia noticiaToEdit)
        {
            var noticiaOriginal = GetNoticia(noticiaToEdit.Id);
            _entities.ApplyPropertyChanges(noticiaToEdit.EntityKey.EntitySetName, noticiaToEdit);
            _entities.SaveChanges();
            return noticiaToEdit;
        }

        public noticia GetNoticia(int id)
        {
            return (from c in _entities.noticiaSet where c.Id == id select c).FirstOrDefault();
        }

        public IEnumerable<noticia> ListNoticias()
        {
            return _entities.noticiaSet.ToList();
        }

        #endregion
    }
}
Run Code Online (Sandbox Code Playgroud)

看看对NewsFile对象没有任何提及.

Mat*_*caj 5

一个强烈的建议词:上传/附加的文件(S)的"附加目标"已创建记录.

我有一个类似的情况,我有(实际上几乎相同)'公告'对象,我可以附加图像或PDF附件.我最初的想法是允许发布新公告(标题,类别,正文等)以及要上传的文件.现在,诚然,我正在尝试设计同时上传多个文件(以及对上传失败的巧妙响应/验证)..但重点是:这种方法太难了.帮自己一个忙,让用户先创建记录,然后附上/上传文件.拥有主键表记录也会使事情变得更容易.

编辑:有关文件和上传的更多信息:

我使用一个File对象来存储我的数据库中的文件(所以是的,我需要一个二进制/图像字段byte[]).然后我有其他对象代表具体文件,比如ImagePdfDoc继承File- 这些包括其他属性(如Image类型的宽度和高度).我有一个局部视图,向详细视图呈现可重复使用的上传控件,当提交帖子AttachImage()AttachPdfDoc()特定方法时Announcement(在创建之后 - 参见上文).服务层在验证后查看存储文件等并链接对象.然后详细视图重新加载,并且附加的文件已准备好供公众下载.(注意:这是大概总结的btw - 我也只允许在经过身份验证的用户的详细信息视图上进行编辑控件(上传表单))