2017-04-12 12 views
0

Umbraco CMS를 처음 사용했습니다. 내 프로젝트에 Ui-O-Matic 플러그인을 사용하고 있습니다.
Ui-O-Matic은 데이터베이스에 대한 CRUD 작업을 손쉽게합니다. 하지만 파일, 텍스트 영역 등의 백 오피스 컨트롤을 사용하고 싶습니다.
Ui-O-Matic Umbraco의 UIOMaticField 또는 백 오피스 컨트롤 사용

그래서 database.cs 파일에서 UIOMaticFielld를 사용하고 있습니다.

[Column("newsDetail")] 
[UIOMaticField("News Detail","Add Details",View ="textarea")] 
public string newsDetail { get; set; } 

[Column("newsImage")] 
[UIOMaticField("Image","Upload Image",View ="file")] 
public string newsImage { get; set; } 

문제는 데이터베이스의 변경을 할 때, 나는 데이터베이스 변경을 얻을 database.tt 파일을 새로 고쳐야 할 것입니다. 그러나 database.cs 파일 내 이전 변경을 재현 :

[UIOMaticField("News Detail","Add Details",View ="textarea")] 

는 database.cs 파일에서 제거합니다. 그리고 매번 같은 변화를해야합니다.
은 내가 사용자 정의 변경 사항을 그대로 유지하기 위해 무엇을해야합니까? 심지어 database.tt 파일을 새로 고칩니다.
다른 좋은 방법으로 CRUD 작업을 수행하는 것이 좋습니다.

답변

1

Google 검색 결과가 많아 질수록 database.cs 파일이 자동으로 생성되므로 사용자 정의 변경을해서는 안된다는 사실을 발견했습니다.
백 오피스 컨트롤을 사용하는 또 다른 방법을 찾았습니다. 내가 여기서 설명 할게, 다른 사람에게 도움이 될지도 몰라.

databse.cs 파일에 UIOMatoicField를 쓰는 대신 동일한 작업을 수행 할 모델을 만드십시오.

// Settings 
    ConnectionStringName = "umbracoDbDSN";   // Uses last connection string in config if not specified 
    Namespace = "Generator"; 
    RepoName = ""; 
    GeneratePocos = true; 
    ClassPrefix = ""; 
    ClassSuffix = ""; 

    // Read schema 
    var tables = LoadTables(); 
    tables["Course"].Ignore = true; // Prevents table to include in databse.cs file 
    tables["News"].Ignore = true; 
if (tables.Count>0) 
    { 
#> 
<#@ include file="UIOMatic.Generator.ttinclude" #> 
<# } #> 

그런 다음 아래와 같이 새로운 모델을 만들 "모델/생성/database.tt"파일에 변경 아래합니다. 예를 들어. 업데이트 된 데이터베이스를 얻을 수 database.tt 파일을 다시로드 할 경우 지금, 당신의 코드가 제거되지 않습니다

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using UIOMatic.Attributes; 
using UIOMatic.Enums; 
using UIOMatic.Interfaces; 
using Umbraco.Core.Persistence; 
using Umbraco.Core.Persistence.DatabaseAnnotations; 

namespace EdumentUIOMatic.Models 
{ 
    [Umbraco.Core.Persistence.TableName("News")] 
    [PrimaryKey("newsId")] 
    [UIOMatic("News", "icon-box-open", "icon-box-open", RenderType = UIOMaticRenderType.List, ConnectionStringName = "umbracoDbDSN")] 
    public class NewsModel: IUIOMaticModel 
    { 
     [UIOMaticIgnoreField] 
     [Column("newsId")] 
     public int newsId { get; set; } 

     [Column("newsTitle")] 
     [UIOMaticField("News Title", "Add Title")] 
     public string newsTitle { get; set; } 

     [Column("newsDetail")] 
     [UIOMaticField("News Detail", "Add Details", View = "textarea")] 
     public string newsDetail { get; set; } 

     [Column("newsImage")] 
     [UIOMaticField("Image", "Upload Image", View = "file")] 
     public string newsImage { get; set; } 



     [Column("isDeleted")] 
     [UIOMaticField("Hide News", "Check if you want to hide this news")]   
     public bool isDeleted { get; set; } 



     [System.Web.Http.AcceptVerbs("GET", "POST")] 
     public IEnumerable<Exception> Validate() 
     { 
      return new List<Exception>(); 
     } 
    } 
} 

을 "모델 NewsModel.cs을 \".