엔티티 프레임 워크, 클래스를 키 / 값 테이블에 매핑 할 수 있습니까?

Shtiliyan Uzunov

내 데이터베이스에는 애플리케이션 구성을 저장하는 데 사용하는 키 / 값 테이블이 있습니다. 이 키 / 값 테이블에 매핑하려는 StoreConfiguration 클래스의 몇 가지 예제 설정입니다.

 public class StoreConfiguration
 {

    //.... more settings

    public int DefaultPartnerID { get; set; }

    public int DefaultOperatorID { get; set; }

    public string DefaultCurrency { get; set; }

    public int DefaultCurrencyID { get; set; }

    //.... more settings

예를 들어 내 데이터베이스에 이것들이 있고 싶습니다.

키 | 
--------------------------
DefaultpartnerID | 1
DefaultOperatorID | 10
DefaultCurrency | USD
DefaultCurrencyID | 2

EntityFramework로 이러한 유형의 매핑을 만들 수 있습니까?

율리 암 찬드라

KeyValue속성 을 포함하는 간단한 엔터티를 사용할 수 있습니다 .

public class StoreConfiguration
{
    [Key]
    public string Key { get; set; }
    public string Value { get; set; }
}

그런 다음 확장을 제공하여 저장소 구성을 추가 및 제거하십시오.

public static class StoreConfigurationExtension
{
    public static T GetStoreConfiguration<T>(this DbContext db, string key)
    {
        var sc = db.Set<StoreConfiguration>().Find(key);
        if (sc == null) return default(T);

        var value = sc.Value;
        var tc = TypeDescriptor.GetConverter(typeof(T));
        try
        {
            var convertedValue = (T)tc.ConvertFromString(value);
            return convertedValue;
        }
        catch (NotSupportedException)
        {
            return default(T);
        }
    }

    public static void SetStoreConfiguration(this DbContext db, string key, object value)
    {
        var sc = db.Set<StoreConfiguration>().Find(key);
        if (sc == null)
        {
            sc = new StoreConfiguration { Key = key };
            db.Set<StoreConfiguration>().Add(sc);
        }

        sc.Value = value == null ? null : value.ToString();
    }
}

용법.

using (var db = new AppContext())
{
    db.SetStoreConfiguration("DefaultpartnerID", 1);
    db.SaveChanges();
}
using (var db = new AppContext())
{
    var defaultpartnerID = db.GetStoreConfiguration<int>("DefaultpartnerID");
    db.SaveChanges();
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

엔티티 프레임 워크, 클래스를 키 / 값 테이블에 매핑 할 수 있습니까?

분류에서Dev

엔티티 프레임 워크에 내 클래스를 추가 할 수 있습니까?

분류에서Dev

클래스의 엔티티 프레임 워크 엔티티에 액세스 할 수 없습니다.

분류에서Dev

devart oracle 9.3- 엔티티 프레임 워크 7 (또는 코어 1) 매핑은 Visual Studio 2017에서 십진수를 인식 할 수 없습니다.

분류에서Dev

엔터티 프레임 워크 : 매핑 된 외래 키를 필수에서 nullable로 변경

분류에서Dev

C #으로 엔티티 프레임 워크에서 array.contains를 어떻게 사용할 수 있습니까?

분류에서Dev

엔티티 프레임 워크가 테이블을 차단하도록 선택할 수 있습니까?

분류에서Dev

Automapper를 사용하여 엔티티 프레임 워크 클래스를 비즈니스 클래스에 맵핑

분류에서Dev

먼저 엔티티 프레임 워크 코드, 외래 키 값에 액세스

분류에서Dev

엔터티 프레임 워크에서 한 테이블의 ID 값을 다른 테이블의 외래 키에 저장하는 방법은 무엇입니까?

분류에서Dev

Winform appl에서 datagridview 링크 버튼 열의 값을 어떻게 설정할 수 있습니까? 엔티티 프레임 워크 사용

분류에서Dev

엔티티 프레임 워크에서 상위를 거치지 않고 하위 엔티티를 업데이트 할 수 없습니다.

분류에서Dev

그것은 기존의 엔티티 테이블에, 적은 분야로 새로운 POJO 클래스를 매핑 할 수 있습니까?

분류에서Dev

linq-to-sql 또는 엔티티 프레임 워크를 사용하여 두 개의 다른 상위 엔티티에 엔티티를 어떻게 추가 할 수 있습니까?

분류에서Dev

엔티티 프레임 워크 6 (Fluent Api)의 외래 키만있는 테이블

분류에서Dev

dbset 엔티티 프레임 워크의 클래스 이름으로 속성 이름을 사용할 수 없습니다.

분류에서Dev

DB 모드가있는 엔티티 프레임 워크는 서버에 연결할 수 없습니다.

분류에서Dev

엔터티 프레임 워크의 잘못된 작업 예외 "IEntityChangeTracker의 여러 인스턴스에서 엔터티 개체를 참조 할 수 없습니다."

분류에서Dev

엔터티 프레임 워크에 중첩 된 개체를 저장할 수 없습니다.

분류에서Dev

엔티티 프레임 워크에서 생성 된 외래 키 관계를 갖는 클래스의 구조

분류에서Dev

봇 프레임 워크-luis 엔티티 점수는 luis v3.0에서 사용할 수 없습니다.

분류에서Dev

Python 기반 프레임 워크 Django를 사용하여 네이티브 모바일 앱의 백엔드를 개발할 수 있습니까?

분류에서Dev

프로젝트에서 엔티티 프레임 워크에 사용한 적이있는 최대 엔티티 수?

분류에서Dev

프로젝트에서 엔티티 프레임 워크에 사용한 적이있는 최대 엔티티 수?

분류에서Dev

엔티티 프레임 워크를 사용하여 여러 레코드를 삭제하거나 업데이트 할 수 없습니다.

분류에서Dev

엔티티 프레임 워크 6에 아직로드되지 않은 외래 키 지연로드 속성이있는 엔티티 삭제

분류에서Dev

값을 업데이트 할 수 없음 : 엔티티의 상태를 '수정 됨'으로 변경하는 동안 '기본 키'에 임시 값이 있습니다.

분류에서Dev

기본 키 및 notnull 값이없는 엔티티 프레임 워크 및 테이블

분류에서Dev

엔티티 프레임 워크가 데이터베이스를 열 수 없습니다.

Related 관련 기사

  1. 1

    엔티티 프레임 워크, 클래스를 키 / 값 테이블에 매핑 할 수 있습니까?

  2. 2

    엔티티 프레임 워크에 내 클래스를 추가 할 수 있습니까?

  3. 3

    클래스의 엔티티 프레임 워크 엔티티에 액세스 할 수 없습니다.

  4. 4

    devart oracle 9.3- 엔티티 프레임 워크 7 (또는 코어 1) 매핑은 Visual Studio 2017에서 십진수를 인식 할 수 없습니다.

  5. 5

    엔터티 프레임 워크 : 매핑 된 외래 키를 필수에서 nullable로 변경

  6. 6

    C #으로 엔티티 프레임 워크에서 array.contains를 어떻게 사용할 수 있습니까?

  7. 7

    엔티티 프레임 워크가 테이블을 차단하도록 선택할 수 있습니까?

  8. 8

    Automapper를 사용하여 엔티티 프레임 워크 클래스를 비즈니스 클래스에 맵핑

  9. 9

    먼저 엔티티 프레임 워크 코드, 외래 키 값에 액세스

  10. 10

    엔터티 프레임 워크에서 한 테이블의 ID 값을 다른 테이블의 외래 키에 저장하는 방법은 무엇입니까?

  11. 11

    Winform appl에서 datagridview 링크 버튼 열의 값을 어떻게 설정할 수 있습니까? 엔티티 프레임 워크 사용

  12. 12

    엔티티 프레임 워크에서 상위를 거치지 않고 하위 엔티티를 업데이트 할 수 없습니다.

  13. 13

    그것은 기존의 엔티티 테이블에, 적은 분야로 새로운 POJO 클래스를 매핑 할 수 있습니까?

  14. 14

    linq-to-sql 또는 엔티티 프레임 워크를 사용하여 두 개의 다른 상위 엔티티에 엔티티를 어떻게 추가 할 수 있습니까?

  15. 15

    엔티티 프레임 워크 6 (Fluent Api)의 외래 키만있는 테이블

  16. 16

    dbset 엔티티 프레임 워크의 클래스 이름으로 속성 이름을 사용할 수 없습니다.

  17. 17

    DB 모드가있는 엔티티 프레임 워크는 서버에 연결할 수 없습니다.

  18. 18

    엔터티 프레임 워크의 잘못된 작업 예외 "IEntityChangeTracker의 여러 인스턴스에서 엔터티 개체를 참조 할 수 없습니다."

  19. 19

    엔터티 프레임 워크에 중첩 된 개체를 저장할 수 없습니다.

  20. 20

    엔티티 프레임 워크에서 생성 된 외래 키 관계를 갖는 클래스의 구조

  21. 21

    봇 프레임 워크-luis 엔티티 점수는 luis v3.0에서 사용할 수 없습니다.

  22. 22

    Python 기반 프레임 워크 Django를 사용하여 네이티브 모바일 앱의 백엔드를 개발할 수 있습니까?

  23. 23

    프로젝트에서 엔티티 프레임 워크에 사용한 적이있는 최대 엔티티 수?

  24. 24

    프로젝트에서 엔티티 프레임 워크에 사용한 적이있는 최대 엔티티 수?

  25. 25

    엔티티 프레임 워크를 사용하여 여러 레코드를 삭제하거나 업데이트 할 수 없습니다.

  26. 26

    엔티티 프레임 워크 6에 아직로드되지 않은 외래 키 지연로드 속성이있는 엔티티 삭제

  27. 27

    값을 업데이트 할 수 없음 : 엔티티의 상태를 '수정 됨'으로 변경하는 동안 '기본 키'에 임시 값이 있습니다.

  28. 28

    기본 키 및 notnull 값이없는 엔티티 프레임 워크 및 테이블

  29. 29

    엔티티 프레임 워크가 데이터베이스를 열 수 없습니다.

뜨겁다태그

보관