SubSonic의 스키마 빌더를 사용하여 DB에 이진 열을 어떻게 작성합니까?SubSonic은 DB 스키마, 바이너리 유형을 생성합니까?
그래서 오늘 밤 나는 SubSonic으로 뛰어 들기로 결정했습니다. 나는 여기에 많은 질문을하고 Rob과 많은 다른 사람들에 의해 큰 반응을 보았다. SubSonic이 ORM이라는 것을 알았습니다. T4 Templates를 사용하면 기존 데이터베이스에서 매우 훌륭하고 효율적인 클래스를 생성 할 수 있습니다.
하지만 다른 방법으로 가고 싶습니다. 나는 매우 풍부한 도메인을 가지고 있으며 SubSonic과 RunMigrations 옵션을 사용하여 내 도메인에서 임시 테이블을 만들고 싶습니다.
모두 잘 작동합니다 (심지어 어셈블리 리비전 번호를 기반으로 코드베이스가 변경되었는지 감지하고 DB에 모든 객체 업데이트를 마이그레이션하는 내 업 그레 이드() 기능을 작성했습니다.) - 자동 매끄럽게 업그레이드 할 때 유용합니다. DB).
그러나 어떻게 SubSonic에서 이진 열을 만들 수 있습니까? 어쩌면 내가 의도 한대로 사용하지 않고있다. (Query 또는 SqlQuery를 사용하지 않고 SimpleRepository의 Linq 인터페이스 만 사용한다.) (공통 "블로그 게시물"예를 사용) 아래를 참조 PostType (또는 형식 열거 PostType) 및 이미지 (:
[SubsonicTable]
public class Post
{
[SubSonicPrimaryKey]
public Int32 PostID { get; set; }
[SubSonicStringLength(1024)]
public String Title { get; set; }
[SubSonicLongString]
public String Body { get; set; }
[SubSonicStringLength(5)]
public String? LangaugeCode { get; set; }
public DateTime? Published { get; set; }
public PostType PostType { get; set; }
public Int32 PostTypeID
{
get
{
return this.PostType.GetHashCode();
}
set
{
Enum.Parse(typeof(PostType), value.ToString());
}
}
public Byte[] Image { get; set; }
}
public enum PostType
{
NotSet = 0
,BlogPost
,Comment
,Trackback
,Pingback
}
이 포스트 객체가 두 개의 열이 누락되면, SimpleRepository를 통해, 저장, 또는 쿼리 도착하면 byte [] 배열의 형태)
이제는 누군가가 열거 형 문제를 해결하기 위해 Int32 PostTypeID를 사용하여 게시 한 해킹을 발견했습니다. Rob에게 와서, SubSonic은 INT에 열거 형을 지원할 수 있어야합니다. ;) 이것이 내가 PostTypeID를 가지고있는 이유이며, 이것은 제대로 작성되고 작성됩니다.
Post p = new Post();
p.Title = "My Title";
p.Body = "The body of the post.";
p.PostType = PostType.BlogPost;
var repo = new SimpleRepository(SimpleRepositoryOptions.RunMigrations);
repo.Add(p);
참고 : 여기에
는, 나를 위해 포스트 테이블을 생성하는 명령의 예뿐만 아니라 첫 번째 게시물을 삽입의 당신은 많이있는 RunMigrations으로, 생산에이 코드를 사용하지 말아야합니다 처음 실행시 추가 TSQL 쿼리.위의 예에서 볼 수있는 것처럼 게시 테이블이없는 경우 해당 테이블을 만들 수 있습니다.
그러나 위에서 언급 한 두 개의 열 (PostType 또는 Image)은 생성되지 않습니다.
생각하십니까? 그리고 미리 감사드립니다.
우수 Rob! 프로젝트에 기여할 지 궁금합니다. Linsoft의 버전 인 CreateDatabase()를 대체하기 위해 Subsonic을 찾고 있었는데, 마이그레이션 경로가 없습니다. Enums (int), Xml 등의 다른 열이 있습니다. Linq가 풍부한 지원을합니다. 나는 이것들에 더 가까이서 Subsonic을 조사 할 것이다. :) 감사! – eduncan911
물론 - 우리가 성장하는 방법입니다. :) 주의 : http : //www.subsonicproject.com/docs/Submit_Patch 나는 당신이 줄 수있는 모든 도움을 사용할 수 있습니다 ... –