Frage

Ich bin neu in asp.net Mvc.

ich Linq to Sql bin mit und versuchen, alles lose gekoppelt zu tun.

Ich habe zwei Tabellen:

  1. News
  2. NewsFiles

Was ich versuche zu tun, um eine Nachricht speichern und seine Dateien gleichzeitig hochladen.

Wie kann ich eine Nachricht in Verbindung mit seinen Dateien erstellen, sie zu speichern NewsFiles Tabelle?

Das LINQ to SQL-Modell Ok ist, enthält es das Objekt zu NEWSFILE Nachrichten-Objekt.

Meine konkrete Repository-Klasse für Nachrichten-Tabelle (noticia auf Portugiesisch):

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
    }
}

Sehen Sie, das ist nicht die Rede auf NEWSFILE-Objekt.

War es hilfreich?

Lösung

stark Wort der Beratung:. Upload / hängen Sie die Datei (en) nach der 'anhängen Ziel' Datensatz erstellt wurde

Ich habe eine ähnliche Situation, wo ich (na ja fast das gleiche tatsächlich) ‚Announcement‘ bezweckt, zu dem ich ein Bild oder eine PDF-Anlage anbringen. Meine ursprüngliche Idee war, der Entsendung der neuen Mitteilung (Titel, Kategorie, Körper usw.) mit die Datei zu ermöglichen zu. Nun, zugegebenermaßen ich versuche, für den Upload von vielen Dateien gleichzeitig zu entwerfen (und klugen Antworten / Validierung für gescheiterte Uploads) .. aber der Punkt ist: dieser Ansatz zu hart war. Tun Sie sich selbst einen Gefallen und haben die Benutzer erstellen den Datensatz zuerst, dann Attach / laden Sie die Datei (en) nach. die Primärschlüsseltabelle Datensatz vorhanden hat, wird auch die Dinge einfacher machen.

EDIT: Mehr Informationen über Dateien und Bilder:

Ich verwende ein File Objekt zu speichern Dateien in meinem db (also ja muß ich ein Binär / Bildfeld für die byte[]). Dann habe ich andere Objekte, die konkrete Dateien darstellen, wie Image und PdfDoc, die von File erben - dazu gehören andere Eigenschaften (wie Breite und Höhe für den Image-Typ). Ich habe eine Teilansicht, die ein wiederverwendbares Upload-Steuerelement in die Detailansicht macht aus, die als Beiträge zu den AttachImage() oder AttachPdfDoc() Methoden für den jeweiligen Announcement vorgelegt (nachdem es erstellt wurde - siehe oben). Die Service-Schicht kümmert sich um die Dateien zu speichern, usw. nach der Validierung und verbindet die Objekte. Dann wird die Detailansicht neu geladen und die angehängten Dateien aufgelistet sind bereit fo Download von der Öffentlichkeit. (NB: Das ist stark btw zusammengefasst - ich auch nur dem Edit-Steuerelemente (Upload-Formular erlaubt) auf der Detailansicht für authentifizierte Benutzer)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top