umbraco 7 вставить строку в пользовательскую таблицу

Я только что создал модель и контроллер, которые вставляют новую строку в пользовательскую таблицу в мою базу данных umbraco.

Я основывался на учебнике petapoco http://creativewebspecialist.co.uk/2013/07/16/umbraco-petapoco-to-store-blog-comments/

Несмотря на то, что скрипт выполняется без ошибок, строка не вставляется в таблицу.

вот что у меня есть:

namespace MyImport.Models
{
[TableName("MyImport_Uploads")]
[PrimaryKey("ID", autoIncrement = true)]
[ExplicitColumns]
public class ImportFile
{
    [Column("ID")]
    [PrimaryKeyColumn(AutoIncrement=true)]
    public int Id { get; set; }

    [Required]
    [Column("CompanyID")]
    public string CompanyId { get; set; }
    //public Guid CompanyId { get; set; }

    [Required]
    [Column("FilenameOriginal")]
    public string FilenameOriginal { get; set; }

    [Required]
    [Column("Filename")]
    public string Filename { get; set; }

    [Required]
    [Column("FileType")]
    public string FileType { get; set; }

    [Column("NumberOfItems")]
    public int NumberOfItems { get; set; }

    [Column("DateCreated")]
    public DateTime DateCreated { get; set; }

    [Column("DeleteExisting")]
    public bool DeleteExisting { get; set; }
}
}

И контроллер:

namespace MyImport.Controllers
{
    public class ImportController : SurfaceController
    {
        private Umbraco.Core.Persistence.UmbracoDatabase db = MyImport.Settings.UmbracoDbDSN;

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult ImportExcel(ImportModel model)
    {

        var fileTypes = new List<string>
        {
            "text/xml",
            "application/xml",
        };
        string fileType = GetFileType(model.FileUpload.ContentType);

        if(model.FileUpload != null && model.FileUpload.ContentLength > 0)
        {
            string uploadDir = "~/imports";
            string origFileName = model.FileUpload.FileName;
            string extension = origFileName.Substring(origFileName.LastIndexOf('.') + 1);
            string pathToCheck = Path.Combine(Server.MapPath(uploadDir), origFileName);

            // Check to see if a file already exists with the
            // same name as the file to upload.
            if (!System.IO.File.Exists(pathToCheck))
            {
                string companyId = MyImport.Member.CompanyIdDummy;

                string tempfileName = companyId.ToLower() + "-" + DateTime.Now.ToString("yyyyMMddHHmmss") + "." + extension;
                pathToCheck = Path.Combine(Server.MapPath(uploadDir), tempfileName);
                model.FileUpload.SaveAs(pathToCheck);

                var importFile = new ImportFile
                {
                    CompanyId = companyId,
                    Filename = tempfileName,
                    FilenameOriginal = origFileName,
                    FileType = extension,
                    DateCreated = DateTime.UtcNow
                };

                db.Insert(importFile);
            }

            TempData.Add("Success", true);
        }

        //redirect to current page to clear the form
        return RedirectToCurrentUmbracoPage();
    }
}

Какие-либо предложения? Спасибо


person nickornotto    schedule 02.07.2014    source источник


Ответы (1)


У меня неправильно настроена база данных.

По сути, у меня это было как umbraco.sdf в папке App_Data, в то время как я намеревался использовать свою полную базу данных MSSQL, в которой была создана таблица.

Я воссоздал проект, переустановил umbraco и ДОЛЖЕН был выбрать «Настроить» в нижней части экрана, где я выбирал настройку доступа к cms. Это важно, так как затем меня перенаправили на экран, где я мог настроить подключение к базе данных. В противном случае umbraco просто устанавливается в базу данных SQL Server Express, которая хранится в файле umbraco.sdf в проекте.

Я надеюсь, что это имеет смысл для тех, кто ищет решение той же проблемы.

person nickornotto    schedule 11.07.2014