Member 13404587 Ответов: 1

Помогите преобразовать C# в VB, получая ошибки с помощью инструмента преобразования.


У меня есть следующий рабочий код C#, который я написал, но мне нужно использовать его и в приложении VB.

public IQueryable<Employee> LoadEmployee()
{

    using (DbConnection connection = GetConnection())
    {
        using (DbCommand command = connection.CreateCommand())
        {

            command.CommandText = "[HR].[usp_Employee]";
            command.CommandType = CommandType.StoredProcedure;

            connection.Open();

            using (DbDataReader reader = command.ExecuteReader())
            {
                DataTable table = new DataTable();

                table.Load(reader);

                return (from employee in table.AsEnumerable()
                        select new
                        {
                            EmployeeName = employee.Field<string>("EmployeeName")

                        }).Select(model => new Entity

                        {
                            EmployeeName = model.EmployeeName

                        }).AsQueryable();
            }
        }
    }
}


Что я уже пробовал:

Я пробовал несколько инструментов преобразования, но получал несколько ошибок:

Вот пример из инструмента преобразования:

Public Function LoadEmployee() As IQueryable(Of Employee)

    Using connection As DbConnection = GetConnection()
        Using command As DbCommand = connection.CreateCommand()

            command.CommandText = "[HR].[usp_Employee]"
            command.CommandType = CommandType.StoredProcedure

            connection.Open()

            Using reader As DbDataReader = command.ExecuteReader()
                Dim table As New DataTable()

                table.Load(reader)

            Return (From employee In table.AsEnumerable()New With { _
                Key .EmployeeName = employee.Field(Of String)("EmployeeName") _
            }).[Select](Function(model) New Entity() With { _
                Key .EmployeeName = model.EmployeeName _
            }).AsQueryable()
            End Using
        End Using
    End Using
End Function

Richard Deeming

Вы делать знайте, что вы можете скомпилировать библиотеку классов в C# и вызвать ее из VB.NET-верно? :)

1 Ответов

Рейтинг:
12

Graeme_Grant

Это выглядит так Преобразователь Кода Телерика[^] выход. Я думаю, что коррекция такова:

Public Function LoadEmployee() As IQueryable(Of Employee)

    Using connection As DbConnection = GetConnection()
        Using command As DbCommand = connection.CreateCommand()

            command.CommandText = "[HR].[usp_Employee]"
            command.CommandType = CommandType.StoredProcedure

            connection.Open()

            Using reader As DbDataReader = command.ExecuteReader()
                Dim table As New DataTable()

                table.Load(reader)

                Return (From employee In table.AsEnumerable()
                        Select New With
                        {.EmployeeName = employee.Field(Of String)("EmployeeName")}) _
                    .Select(Function(model) New Entity() With
                        {.EmployeeName = model.EmployeeName}) _
                    .AsQueryable()
            End Using
        End Using
    End Using
End Function