Как видно из сообщения об ошибке, AppBundle\Entity\ProductClient#product is not defined as association, but as field
.
Просто удалите это @ORM\Column(name="product_id", type="integer")
и это @ORM\Column(name="client_id", type="integer")
.
class ProductClient
{
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Product", inversedBy="products_clients")
* @ORM\JoinColumn(name="product_id", referencedColumnName="id_product", nullable=false)
*/
protected $product;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Client", inversedBy="products_clients")
* @ORM\JoinColumn(name="client_id", referencedColumnName="id_client", nullable=false)
*/
protected $client;
/**
* @var bool
*
* @ORM\Column(name="status", type="boolean")
*/
private $status;
}
Public Shared Function GetExcelVersion() As Integer
Dim excel As Object = Nothing
Dim ver As Integer = 0
Dim build As Integer
Try
excel = CreateObject("Excel.Application")
ver = excel.Version
build = excel.Build
Catch ex As Exception
'Continue to finally sttmt
Finally
Try
Marshal.ReleaseComObject(excel)
Catch
End Try
GC.Collect()
End Try
Return ver
End Function
Возвращает 0, если Excel не найден.
К сожалению, такой подход - единственный надежный подход. Даже Microsoft предлагает использовать похожий метод (это для проверки вручную, но концепция идентична).
Если вы хотите сделать это в управляемом коде, я бы предложил просто перенести код из вашего ссылка и создание класса, который легко расширяется при выпуске новых пакетов обновления.
Хотя этот подход не является надежным, но это единственный способ, о котором я знаю.
Имейте в виду, что вам не нужно проверять точное соответствие. Вы можете использовать сравнения отдельных значений, чтобы узнать, является ли ваша версия, например, SP1 или новее. вы знаете, что он новее, если номер версии больше или равен «11.0.6355.0» (вам необходимо реализовать сравнение)