Joh*_*ado 0 asp.net-mvc entity-relationship linq-to-sql
我是asp.net mvc的新手.
我正在使用Linq到Sql并试图做松散耦合的一切.
我有两张桌子:
我要做的是保存新闻并同时上传文件.
如何与他的文件一起创建新闻,将其保存到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对象没有任何提及.
一个强烈的建议词:上传/附加的文件(S)后的"附加目标"已创建记录.
我有一个类似的情况,我有(实际上几乎相同)'公告'对象,我可以附加图像或PDF附件.我最初的想法是允许发布新公告(标题,类别,正文等)以及要上传的文件.现在,诚然,我正在尝试设计同时上传多个文件(以及对上传失败的巧妙响应/验证)..但重点是:这种方法太难了.帮自己一个忙,让用户先创建记录,然后附上/上传文件.拥有主键表记录也会使事情变得更容易.
编辑:有关文件和上传的更多信息:
我使用一个File对象来存储我的数据库中的文件(所以是的,我需要一个二进制/图像字段byte[]).然后我有其他对象代表具体文件,比如Image和PdfDoc继承File- 这些包括其他属性(如Image类型的宽度和高度).我有一个局部视图,向详细视图呈现可重复使用的上传控件,当提交帖子AttachImage()或AttachPdfDoc()特定方法时Announcement(在创建之后 - 参见上文).服务层在验证后查看存储文件等并链接对象.然后详细视图重新加载,并且附加的文件已准备好供公众下载.(注意:这是大概总结的btw - 我也只允许在经过身份验证的用户的详细信息视图上进行编辑控件(上传表单))
| 归档时间: |
|
| 查看次数: |
2027 次 |
| 最近记录: |