0

私はasp.net mvcが初めてです。

私はLinq to Sqlを使用しており、すべてを疎結合にしようとしています。

私は2つのテーブルを持っています:

  1. ニュース
  2. ニュースファイル

私がやろうとしているのは、ニュースの保存とそのファイルのアップロードを同時に行うことです。

NewsFiles テーブルに保存する彼のファイルと組み合わせてニュースを作成するにはどうすればよいですか?

Linq to Sql モデルは問題ありません。オブジェクト NewsFile to News オブジェクトが含まれています。

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 オブジェクトへの言及ではありません。

4

1 に答える 1

5

強力なアドバイス: 'attach target' レコードが作成された後に、ファイルをアップロード/添付してください。

私は、画像またはPDFの添付ファイルを添付できる「アナウンスメント」オブジェクトを持っている(実際にはほぼ同じ)同様の状況にあります。私の最初のアイデアは、新しいお知らせ (タイトル、カテゴリ、本文など) をアップロードするファイルと共に投稿できるようにすることでした。確かに、私は同時に多くのファイルをアップロードできるように設計しようとしていました (そして、失敗したアップロードに対する巧妙な応答/検証)。ユーザーに最初にレコードを作成してもらってから、ファイルを添付/アップロードしてください。主キー テーブル レコードが存在すると、作業も簡単になります。

編集: ファイルとアップロードに関する詳細情報:

オブジェクトを使用してFileファイルをデータベースに保存します(したがって、バイナリ/イメージフィールドが必要になりますbyte[])。次に、具象ファイルを表す他のオブジェクトがImageありPdfDoc、継承しFileます-これらには他のプロパティが含まれます(タイプの幅や高さなどImage)。AttachImage()再利用可能なアップロード コントロールを詳細ビューにレンダリングする部分ビューがあります。これは、送信時に特定のまたはAttachPdfDoc()メソッドに投稿しますAnnouncement(作成後 - 上記参照)。サービス層は、検証後にファイルなどを保存し、オブジェクトをリンクします。その後、詳細ビューがリロードされ、添付ファイルが一覧表示され、一般ユーザーがダウンロードできるようになります。(注: これは非常に要約されていますが、認証されたユーザーの詳細ビューでは編集コントロール (アップロード フォーム) のみを許可しています)

于 2009-05-12T05:57:14.143 に答える