【问题标题】:asp.net mvc 1 to many saving post and upload filesasp.net mvc 1 到许多保存帖子和上传文件
【发布时间】:2023-03-14 01:43:01
【问题描述】:

我是 asp.net mvc 的新手。

我正在使用 Linq to Sql 并尝试做所有松散耦合的事情。

我有两张桌子:

  1. 新闻
  2. 新闻文件

我正在尝试做的是保存新闻并同时上传其文件。

我怎样才能创建一个新闻连同他的文件保存到 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
    }
}

你看,这并没有提到 NewsFile 对象。

【问题讨论】:

    标签: asp.net-mvc linq-to-sql entity-relationship


    【解决方案1】:

    strong忠告:“附加目标”记录创建之后上传/附加文件。

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

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

    我使用File 对象将文件存储在我的数据库中(所以是的,我需要byte[] 的二进制/图像字段)。然后我有其他代表具体文件的对象,例如从File 继承的ImagePdfDoc - 这些包括其他属性(例如Image 类型的宽度和高度)。我有一个局部视图,它向详细视图呈现可重用的上传控件,当将帖子提交到特定AnnouncementAttachImage()AttachPdfDoc() 方法时(在创建之后 - 见上文)。服务层负责在验证后存储文件等并链接对象。然后重新加载详细视图,并列出附件供公众下载。 (注意:顺便说一句,这是经过大量总结的 - 我也只允许在经过身份验证的用户的详细视图上编辑控件(上传表单))

    【讨论】:

    • 感谢您的提示。我将在列表中包含一个将文件附加到新闻表的操作。问候约翰
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2013-12-19
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2010-10-16
    • 2015-05-29
    相关资源
    最近更新 更多