2014-01-15 1 views
3

EF Люди,Code First ТВФ в 6.1.0-alpha1-30113

Я понимаю, что новоиспеченные публичные интерфейсы для метаданных позволит добавить достаточно метаданных в модели, так что ТВФ можно назвать и быть композиционным.

Если кто-то может указать мне в правильном направлении, я был бы очень признателен. Без Composable TVF я должен пройти через крупную работу раундами.

Глядя на модульном тестировании это выглядит как-то длинное эта мысль:

var functionImport = EdmFunction.Create() 
      "Foo", "Bar", DataSpace.CSpace, 
      new EdmFunctionPayload 
      { 
       IsComposable = true, 
       IsFunctionImport = true, 
       ReturnParameters = new[] 
          { 
           FunctionParameter.Create("functionname", EdmType.GetBuiltInType() 
            EdmConstants.ReturnType, 
            TypeUsage.Create(collectionTypeMock.Object), 
            ParameterMode.ReturnValue), 
          } 
      }); 
... 
entityContainer.AddFunctionImport(functionImport); 

Спасибо, Brian F

ответ

1

Да, теперь это возможно в EF6.1. Я фактически создал пользовательское соглашение модели, которое позволяет использовать функции хранилища в CodeFirst, используя недавно открытый API сопоставления. Соглашение доступно на NuGet http://www.nuget.org/packages/EntityFramework.CodeFirstStoreFunctions. Вот ссылка на блогпост, содержащий все подробности: http://blog.3d-logic.com/2014/04/09/support-for-store-functions-tvfs-and-stored-procs-in-entity-framework-6-1/. Проект является открытым исходным кодом, и вы можете получить источники здесь: https://codefirstfunctions.codeplex.com/